引言:设我们有一些任务列表,任务编号从1开始。不同的任务难度也不一样,分为1-5级。
题目
我们打算把这些任务分配给牛牛,可是牛牛比较懒,每次他接受到一个任务后,他都会从自己的todo list里找到“难度各不相同且编号和最大的五个任务”,然后再一起完成,否则的话,牛牛就把任务放到自己的todo list,什么也不做。
要求:请你根据输入的任务列表的情况,给出牛牛完成任务的情况。


#include<iostream>
#include<algorithm>
#include<stack>
#include<queue>
#include<vector>
#include<string>
using namespace std;
int main()
{
int n;
cin >> n;
stack<int> st1;
stack<int> st2;
stack<int> st3;
stack<int> st4;
stack<int> st5;
for(int i = 1; i <= n; i++)
{
int num;
cin >> num;
switch (num)
{
case 1:
st1.push(i);
break;
case 2:
st2.push(i);
break;
case 3:
st3.push(i);
break;
case 4:
st4.push(i);
break;
case 5:
st5.push(i);
break;
default:
break;
}
if(!st1.empty() && !st2.empty() && !st3.empty() && !st4.empty() && !st5.empty())
{
cout << st1.top() << " " << st2.top() << " " << st3.top() << " " << st4.top() << " " << st5.top() << endl;
st1.pop();
st2.pop();
st3.pop();
st4.pop();
st5.pop();
}
else
cout << -1 << endl;
}
return 0;
}
该程序模拟了牛牛如何处理不同难度等级的任务。牛牛每次会选择编号和最大的五个不同难度的任务完成,如果不能组成这样的组合,则不做任何事情。程序通过使用五个栈分别存储不同难度级别的任务,并在条件满足时输出并移除这些任务。
&spm=1001.2101.3001.5002&articleId=116429892&d=1&t=3&u=751bc90a535c4ae2803a595c3a4e518b)
3446

被折叠的 条评论
为什么被折叠?



