编程:计划清单
 2023-03-28
 在牛客打卡8天,今天学习:刷题 1 道/代码提交 1 次
全部评论 
 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);
小明设计了某个CPU,可是这个CPU有个缺点,习惯先做简单的任务,再做难的任务。
小明有一个做任务的计划清单,当CPU拿到这些任务时,CPU会依次检查当前任务的难度,按照以下规则加入清单:
1. 如果清单为空,CPU会直接把当前任务加入清单。
2. 如果当前的任务比清单中最简单的任务难度还要低,那么CPU会把当前任务插入清单的第一位的前面(马上即将做的任务)。
3. 如果当前的任务比清单中最难的任务难度还要高,那么CPU会把当前任务插入清单的最后一位的后面(最后做的任务)。
4. 如果不是以上三种情况,CPU将放弃该任务。
现在小明拿到了一系列任务,知道了每个任务对应的难度,请按顺序输出CPU最终计划清单的任务列表。
相关推荐
 点赞 评论 收藏   
分享
 
小天才公司福利 1163人发布
查看6道真题和解析