备考(京东2016实习生真题)
2017-04-24 21:56
274 查看
import java.util.*; public class Main { public static void main(String[] args) { List<Integer> lst = new ArrayList<Integer>(); Map<Integer,Integer> map = new HashMap<Integer,Integer>(); Scanner in = new Scanner(System.in); int d = in.nextInt(); int sumtime = in.nextInt(); int i = 0; int[] a = new int[d]; int[] b = new int[d]; int minsum=0,maxsum=0; while(i<d) { int imin = in.nextInt(); int imax = in.nextInt(); a[i] = imin; b[i] = imax; minsum+=a[i]; maxsum+=b[i]; i++; } if(minsum<=sumtime&&maxsum>=sumtime) { System.out.println("Yes"); int extra = sumtime - minsum; //满足最基本的要求 int[] c = a; for(int t=0;t<d;t++) { int cha = b[t]-a[t]; if(extra>=cha) { c[t]=b[t]; extra -= cha; } else{ c[t]=a[t]+extra; } } for(int e=0;e<d;e++) { if(e==d-1) { System.out.println(c[e]); }else { System.out.print(c[e]+" "); } } //System.out.println(""); } else { System.out.println("No"); } } }
题目描述 临近期末,让小东头疼的考试又即将到来了,而且是小东最不喜欢的科目。遗憾的是,小东得知d天后她必须参加此次考试。小东的父亲对她要求非常严格,要求她立即开始复习功课。为照顾她的情绪,父亲要求她每天该科目的学习时间在iminTime到imaxTime之间,并计划在考前检查小东是否按要求做了。若未能完成,小东将会受到惩罚。 现在小东的父亲要求检查小东的备考情况。遗憾的是,由于专注于备考,小东只是记录了自己备考的总时间sumTime,并没有记录每天复习所用的时间,也不知道准备情况是否符合父亲的要求。她想知道是否能够制作一个满足要求的时间表以应付父亲的检查。 小东希望你能够帮到她,你是否愿意?
输入 输入中有多组测试数据。每组测试数据的第一行包含两个整数d和sumTime,1<=d<=30, 0<=sumTime<=240,分别表示小东复习的天数以及每天用于复习的时间之和。紧随其后的d行中,每行包含两个空格分隔的整数,为小东父亲要求小东在这一天用于复习时间的范围iminTime和imaxTime,0<=iminTime<=imaxTime<=8。 | 样例输入 1 48 5 7 2 5 0 1 3 5 |
输出 对每组测试数据,若能够做出一个满足小东父亲要求的时间表,则在单独的一行中输出Yes,并在随后的一行中给出每天复习花费的时间。否则输出No。 若满足要求的时间表不唯一,小东希望给父亲留下比较用功的映像,开始时每天复习的时间比较长。 | 样例输出 No Yes 1 4 |
相关文章推荐
- 京东笔试-交易清单(京东2016实习生真题)
- 三子棋(京东2016实习生真题)
- 京东2016实习生招聘笔试真题-技术岗位选择题A
- 生日礼物(京东2016实习生真题)
- 交易清单(京东2016实习生真题)
- 买糖果(京东2016实习生真题)
- 路径规划(京东2016实习生真题)
- 交易清单(京东2016实习生真题)
- 选举游戏(京东2016实习生真题)
- 选举游戏(京东2016实习生真题)
- 站队编程题(京东2017实习生真题)
- 京东2016实习生招聘笔试详解
- 编号转换(百度2016实习生真题)--java
- 站队(京东2017实习生真题)
- 京东2016实习生笔试题之走坐标
- 2016京东算法工程师实习生笔试编程题:上台阶
- 异或(京东2017实习生真题)
- 2016京东算法工程师实习生笔试编程题:小球的距离
- 京东2016实习生招聘c++开发工程师在线考试-买糖果
- 拍卖(京东2017实习生招聘真题)