2 3 10 10 10 10 20 30 10 10 20 2 3 4 1 1 2 1
3 1 2 1 2HintFor the first case, the farthest distance each kid can jump is 10, 30 and 20. So the rank is 3, 1, 2.
比赛的时候一看是排序,唰唰唰敲上一个结构体然后排序然后输出= =比赛结束之后看了题解才发现n最大只到3.。。。。。有种想扁死自己的冲动。这就是一个简单的排序题,没什么好讲的了吧。。。QAQ。
//这是原来的代码QAQ #include <iostream> using namespace std; struct node { int m; int n; int o; }no[110],temp; int main() { ios::sync_with_stdio(false); int t,n,a,b,c,i,j; cin>>t; while(t--) { cin>>n; for(i=0;i<n;i++) { cin>>a>>b>>c; no[i].m=max(max(a,b),c); no[i].n=i; } for(i=0;i<n-1;i++) { for(j=0;j<n-i-1;j++) { if(no[j].m<no[j+1].m) { temp=no[j]; no[j]=no[j+1]; no[j+1]=temp; } } } for(i=0;i<n;i++) { no[no[i].n].o=i; } for(i=0;i<n;i++) { cout<<no[i].o+1; if(i==n-1) cout<<endl; else cout<<' '; } } return 0; }
//这是刚写的 #include <iostream> using namespace std; void sort(int a[],int n); int main() { ios::sync_with_stdio(false); int t,n,a,b,c,i,every_max[3]; cin>>t; while(t--) { cin>>n; for(i=0;i<n;i++) { cin>>a>>b>>c; every_max[i]=max(max(a,b),c); } sort(every_max,n); } return 0; } void sort(int a[],int n) { int b[3]={1,1,1}; int i,j; for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(a[i]<a[j]) b[i]++; } } for(i=0;i<n;i++) { cout<<b[i]; if(i==n-1) cout<<endl; else cout<<' '; } }