有N个整数,依次来到一个队列,如果是偶数就放在队列的前面;否则,放在队列的后面。特别的,如果来的数是-1,就取出队列2端的数,并输出它们的和(注:队列为空时输出0,队列里就1个数时,就取一个数)。
输入格式
第一行1个正整数:N,范围在[1,100]。
第2行:N个整数,每个数范围在[-1,1000]。
输出格式
输出取数的结果
输入/输出例子1
输入:
6 6 -1 9 7 8 -1
输出:
6 15
样例解释
样例解释
第1个-1:6 --- 6=6
第2个-1:8 9 7 --- 8+7=15
建议自己先做
代码如下:
#include<bits/stdc++.h>
using namespace std;
int n,x;
deque<int>q;
int main(){
cin >> n ;
for (int i=1;i<=n;i++)
{
cin >> x ;
if (x==-1)
{
if (q.size()>=2)
{
cout << q.front()+q.back() << " ";
q.pop_front();
q.pop_back();
}
else if (q.size()==1)
{
cout << q.front() << " ";
q.pop_front();
}
else if (q.empty()==1)
{
cout << 0 << " " ;
}
}
else if (x%2==0)q.push_front(x);
else if (x%2==1)q.push_back(x);
}
return 0;
}