「CODEVS3185 – 3187」队列练习1, 2, 3
队列练习1http://codevs.com/problem/3185/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include<iostream> #include<cstdio> using namespace std; int main() { int n,t=0,w=0; int d[1000]; scanf("%d",&n); for(int i=1;i<=n;i++) { int x,y; scanf("%d",&x); if(x==1){scanf("%d",&y);d[w++]=y;} else t++; } if(t!=w)printf("%d",d[t]); else printf("impossible!"); return 0; } |
队列练习2http://codevs.com/problem/3186/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include<iostream> #include<cstdio> using namespace std; int main() { int n,t=0,w=0; int d[100000]; scanf("%d",&n); for(int i=1;i<=n;i++) { int x,y; scanf("%d",&x); if(x==1){scanf("%d",&y);d[w++]=y;} else t++; if(t>w){printf("impossible!");return 0;} } if(t<=w)printf("%d",d[t]); else printf("impossible!"); return 0; } |
队列练习3http://codevs.com/problem/3187/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include<iostream> #include<cstdio> using namespace std; int main() { int n,t=0,w=0; int d[100000]; scanf("%d",&n); for(int i=1;i<=n;i++) { int x,y; scanf("%d",&x); if(x==1){scanf("%d",&y);d[w++]=y;} else if(x==2)t++; else if(x==3)printf("%d\n",d[t]); if(t>w){printf("impossible!");return 0;} } if(t>w)printf("impossible!"); return 0; } |
hzwer神牛,能不能看下,我这拿错了.队列练习1
感激不尽,跪大神。
#include<iostream>
#include<cstdio>
#include<queue>
using namespace std;
queue<int>q;
int main()
{
int n;
cin>>n;
while(n–)
{
int a,b;
cin>>a;
if(a==1)
{
cin>>b;
q.push(b);
}
else if(a==2)
{
if(!q.empty())
cout<<q.back()<<endl;
else
cout<<"impossible!"<<endl;
}
}
return 0;
}
本人,大二渣渣……
似乎您没有看清楚题目
#include<iostream>
#include<cstdio>
#include<queue>
using namespace std;
queue<int>q;
int main()
{
int n;
cin>>n;
while(n–)
{
int a,b;
cin>>a;
if(a==1)
{
cin>>b;
q.push(b);
}
else if(a==2)
q.pop();
}
if(q.empty())cout<<"impossible!"<<endl;
else cout<<q.front();
return 0;
}
多谢hzwer兄的答复!我知道了!
hzwer小兄弟,第三题好像改了数据,你的代码 在wikioi上也过不了啊!!
第一题少了一个int main()
2333 不知道为什么。。。
…… 第三题,提示错误的数据也就一个…..不知道 那个数据哪里错了…..