1 solutions
-
0
#include<bits/stdc++.h> using namespace std; const int N=110; char g[N][N]; struct Node{ int id,sc; }s[N]; bool cmp(Node a,Node b) { if(a.sc>b.sc) return 1; if(a.sc==b.sc&&a.id<b.id) return 1; return 0; } int main() { int n,m; cin>>n>>m; n=n*2; for(int i=1;i<=n;i++) { s[i].id=i; for(int j=1;j<=m;j++) { cin>>g[i][j]; } } for(int j=1;j<=m;j++) { for(int i=1;i+1<=n;i+=2) { //根据规则加分 if(g[s[i].id][j]=='C'&&g[s[i+1].id][j]=='P'||g[s[i].id][j]=='P'&&g[s[i+1].id][j]=='G'|| g[s[i].id][j]=='G'&&g[s[i+1].id][j]=='C') { s[i].sc++; } else if(g[s[i].id][j]==g[s[i+1].id][j]) { ; } else { s[i+1].sc++; } } sort(s+1,s+n+1,cmp); //重新排名 } for(int i=1;i<=n;i++) { cout<<s[i].id<<endl; } return 0; } ```language
- 1
Information
- ID
- 2668
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 10
- Tags
- # Submissions
- 3
- Accepted
- 2
- Uploaded By