外国网站dns,一个企业网站需要多少钱,门户网站 源码,自己注册的公司怎么报税题目描述#xff1a; 输入#xff1a;
第一个是n#xff0c;它代表操作序列的次数。接下来是n行#xff0c;每行有两个值m和t#xff0c;分别代表题目中操作的两个元素。
输出#xff1a;
按顺序输出收养动物的序列#xff0c;编号之间以空格间隔。
源代码#xff…题目描述 输入
第一个是n它代表操作序列的次数。接下来是n行每行有两个值m和t分别代表题目中操作的两个元素。
输出
按顺序输出收养动物的序列编号之间以空格间隔。
源代码
#includeiostream
#includequeue
#includevector
using namespace std;//例题5.3 猫狗收容所
int main()
{int n, m, t, first0;cin n;//定义两个队列分别存储mao和狗进入收养所的顺序和编号第一个进入的除外queueint cat;queueint dog;//按顺序保存出收养所的动物编号vectorint nums;for (int i 0; i n; i) { //循环cin m t;//保存第一个进入收容所的动物的编号。因为这里只需要输出出收养所的动物编号的顺序如果把第一个进入收养所的也如队列的话//后续输出第一个进入收养所的动物编号比较麻烦直接通单独的一个变量保存更方便if (first 0 m1) { first t;continue;}if (m 1) { // 有动物进入收养所if (t 0) { //进入收养所的是狗dog.push(t);}if (t 0) { //进入收养所的是猫cat.push(t);}}if (m 2) { // 有人收养动物if (t 0 first ! 0) { //收养最早进入的nums.push_back(first);//cout first ;}if (t 1 !dog.empty()) { //收养狗//cout dog.front() ;nums.push_back(dog.front());dog.pop();}if (t -1 !cat.empty()) { //收养猫//cout cat.front() ;nums.push_back(cat.front());cat.pop();}}}//按顺序输出出收养所的动物编号for (int i 0; i nums.size()-1; i) {cout nums[i] ;}cout nums[nums.size() - 1] endl;return 0;
}运行结果