Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
121360 | 司徒立彬 | 平台上的小球 | C++ | 编译错误 | 0 | 0 MS | 0 KB | 1774 | 2024-01-21 17:03:55 |
#include <iostream> using namespace std; int main(){ int n=0;//小球个数 int L=0;//线段长度 int t=0;//时间 int Q[100]={0};//存放小球初始位置 int Q2[100]={0};//暂存上一秒小球位置 int QF[100]={0};//存放小球当前运动方向,1向右、-1向左 for(int i=0;i<100;i++)//小球运动方向初始化为向右 QF[i]=1; cin>>n>>L>>t; for(int i=0;i<n;i++) cin>>Q[i]; //至此实现题设的输入要求 int m1; int m2; for(int i=0;i<t;i++){//最外层实现t个周期的循环 for(int i=0;i<n;i++)//暂存上个周期小球运动方向 Q2[i]=Q[i]; for(m1=0;m1<n;m1++){ if((Q2[m1]==L&&QF[m1]==1)||(Q2[m1]==0&&QF[m1]==-1))//两个端点 QF[m1]=-QF[m1]; else//小球之间相撞 for(m2=0;m2<n;m2++) if(Q2[m1]==Q2[m2]&&m1!=m2) QF[m1]=-QF[m1]; Q[m1]=Q[m1]+QF[m1]; } } for(int i=0;i<n;i++) cout<<Q[i]<<" "; cout<<endl; return 0; } 评论: 误人子弟 氢氦锂铍硼 • 2年前 你的是错的,这才是AC代码 #include <bits/stdc++.h> using namespace std; int n; bool mapp[5010][5010]; struct platform { int h, l, r; } a[1010]; int main() { scanf("%d", &n); for(int i=1;i<=n;i++) { scanf("%d%d%d", &a[i].h, &a[i].l, &a[i].r); for(int j=a[i].l;j<=a[i].r;j++) mapp[a[i].h][j] = true; } int j; for(int i=1;i<=n;i++) { j = a[i].h; while(--j) { if(mapp[j][a[i].l-1]) break; } printf("%d ", j); j = a[i].h; while(--j) { if(mapp[j][a[i].r+1]) break; } printf("%d\n", j); } return 0; }