1 solutions

  • 0
    @ 2025-11-23 14:43:53
    #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

    [ABC222C] 瑞士制锦标赛(Swiss-System Tournament)

    Information

    ID
    2668
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    10
    Tags
    # Submissions
    3
    Accepted
    2
    Uploaded By