看起来难,写起来还行,因为题目控制了,在整数秒时刻在刻度之上
#include<bits/stdc++.h>
using namespace std;
struct qiu{
int posi;
int hao;
int v;
};
bool com(const qiu&a,const qiu&b){
return a.hao<b.hao;
}
int main(){
int n,l,t1;
cin>>n>>l>>t1;
qiu a[n];
for(int i=0;i<n;i++){
a[i].hao =i+1;
int x;
cin>>x;
a[i].posi =x;
a[i].v =1;
}
for(int t=1;t<=t1;t++){
map<int,int> cc;
for(int i=0;i<n;i++){
a[i].posi +=a[i].v;
if(cc.count(a[i].posi)){
a[i].v=0-a[i].v ;
int hhh=cc[a[i].posi ];
for(int j=0;j<n;j++){
if(a[j].hao ==hhh){
a[j].v =0-a[j].v ;
break;
}
}
}
else{
cc[a[i].posi ]=a[i].hao ;
}
if(a[i].posi ==l){
a[i].v=0-a[i].v ;
}
if(a[i].posi ==0){
a[i].v=0-a[i].v ;
}
}
}
sort(a,a+n,com);
for(int i=0;i<n;i++){
cout<<a[i].posi <<" ";
}
return 0;
}

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



