编程:计划清单
2023-03-28
在牛客打卡8天,今天学习:刷题 1 道/代码提交 1 次
全部评论
小明设计了某个CPU,可是这个CPU有个缺点,习惯先做简单的任务,再做难的任务。
小明有一个做任务的计划清单,当CPU拿到这些任务时,CPU会依次检查当前任务的难度,按照以下规则加入清单:
1. 如果清单为空,CPU会直接把当前任务加入清单。
2. 如果当前的任务比清单中最简单的任务难度还要低,那么CPU会把当前任务插入清单的第一位的前面(马上即将做的任务)。
3. 如果当前的任务比清单中最难的任务难度还要高,那么CPU会把当前任务插入清单的最后一位的后面(最后做的任务)。
4. 如果不是以上三种情况,CPU将放弃该任务。
现在小明拿到了一系列任务,知道了每个任务对应的难度,请按顺序输出CPU最终计划清单的任务列表。
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int max = 0, min = 0;
Deque<String> deque = new ArrayDeque<>();
for (int i = 0; i < n; i++){
String[] s = br.readLine().split(" ");
String name = s[0];
int diff = Integer.parseInt(s[1]);
if (deque.isEmpty()){
deque.add(name);
max = diff;
min = diff;
}else if (diff < min){
deque.addFirst(name);
min = diff;
}else if (diff > max){
deque.addLast(name);
max = diff;
}
}
StringBuilder sb = new StringBuilder();
sb.append(deque.size() + "\n");
while (!deque.isEmpty()){
sb.append(deque.removeFirst() + "\n");
}
System.out.println(sb);
相关推荐