记录编号 |
278411 |
评测结果 |
AAAAAAAAAA |
题目名称 |
苳岑学姐の超电磁炮 |
最终得分 |
100 |
用户昵称 |
c2018 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.575 s |
提交时间 |
2016-07-07 21:03:30 |
内存使用 |
0.40 MiB |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,l,m;
int T[110];
struct reball
{
int pos,id2;
}N[1800];
struct newball
{
int pos,dre,id1,id2;
}NN[1800];
newball NNN[1800];
reball NNNN[1800];
void init()
{
cin>>n>>l;
for(int i=1;i<=n;i++)
{ cin>>NN[i].pos>>NN[i].dre;NN[i].id1=i;}
cin>>m;
for(int i=1;i<=m;i++)
cin>>T[i];
}
bool mycmp1(newball x,newball y){return x.pos<y.pos;}
bool mycmp2(newball x,newball y){return x.id1<y.id1;}
void work(int t)
{
for(int i=1;i<=n;i++)
{
if(NNN[i].dre==1) NNN[i].pos-=t;
else NNN[i].pos+=t;
}
sort(NNN+1,NNN+n+1,mycmp1);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(NNNN[j].id2==i) NNNN[j].pos=NNN[i].pos;
}
}
}
int main()
{
freopen("dcball.in","r",stdin);
freopen("dcball.out","w",stdout);
init();
sort(NN+1,NN+n+1,mycmp1);
for(int i=1;i<=n;i++)
NN[i].id2=i;
sort(NN+1,NN+n+1,mycmp2);
for(int i=1;i<=n;i++)
N[i].id2=NN[i].id2;
for(int k=1;k<=m;k++)
{
for(int i=1;i<=n;i++)
{
NNN[i].pos=NN[i].pos;
NNN[i].dre=NN[i].dre;
NNN[i].id1=NN[i].id1;
NNN[i].id2=NN[i].id2;
NNNN[i].pos=N[i].pos;
NNNN[i].id2=N[i].id2;
}
work(T[k]);
for(int j=1;j<=n;j++)
{
if(NNNN[j].pos>l||NNNN[j].pos<=0) cout<<"fire in the hole"<<' ';
else cout<<NNNN[j].pos<<' ';
}
cout<<endl;
}
return 0;
}