CF1932D 求巨佬help
查看原帖
CF1932D 求巨佬help
1190362
xiangyi095039楼主2024/3/10 09:51
#include<bits/stdc++.h>

using namespace std;

int num[1000];

char hua[1000],hua1[1000];

int main(){

    int t;
    cin>>t;
    while(t--){
        int n,cnt=0,ans1=0,ans2;
        char a;
        cin>>n>>a;
        for(int i=1;i<=n*2;i++){
            cin>>num[i]>>hua[i];
            hua1[i]=hua[i];
        }
        for(int i=1;i<=n*2;i++){
           for(int j=i+1;j<=n*2;j++){
               if(hua[i]!=a){
                 if(hua[i]=='p' || hua[j]=='p')continue;
                   if(hua[i]==hua[j]){
                       cnt++;
                       hua[i]=='p';
                       hua[j]=='p';
                   }
               }
           }
        }
        for(int i=1;i<=n*2;i++){
            if(hua[i]==a){
                ans1++;
            }
        }
        ans2=ans1;
        if(cnt+ans1>=n){
          for(int i=1;i<=n*2;i++){
              for(int j=i+1;j<=n*2;j++){
                 if(hua1[i]=='p' || hua1[j]=='p')continue;
                  if(hua1[i]!=a){
                      if(hua1[i]==hua1[j]){
                          if(num[i]<num[j]){
                              cout<<num[i]<<hua1[i]<<" "<<num[j]<<hua1[j]<<endl;
                          }
                          else{
                              cout<<num[j]<<hua1[j]<<" "<<num[i]<<hua1[i]<<endl;
                          }
                          hua1[j]=='p';
                          hua1[i]=='p';
                      }
                  }
              }
          }
          for(int i=1;i<=n*2;i++){
              for(int j=1;j<=n*2;j++){
                  if(hua1[i]=='p' || hua1[j]=='p'||i==j)continue;
                  if(hua1[i]!=a){
                      if(hua1[j]==a){
                          cout<<num[i]<<hua1[i]<<" "<<num[j]<<hua1[j]<<endl;
                          ans2--;
                          hua1[j]=='p';
                          hua1[i]=='p';
                      }
                  }
                } 
            }
            if(ans2!=0){
                for(int i=1;i<=n*2;i++){
                    for(int j=i+1;j<=n*2;j++){
                        if(hua1[i]==a&&hua1[j]==a){
                             if(num[i]<num[j]){
                              cout<<num[i]<<hua1[i]<<" "<<num[j]<<hua1[j]<<endl;
                          }
                          else{
                              cout<<num[j]<<hua1[j]<<" "<<num[i]<<hua1[i]<<endl;
                          }
                          hua1[j]=='p';
                          hua1[i]=='p';
                        }
                    }
                }
            }
        }
        else cout<<"IMPOSSIBLE"<<endl;
    }
    return 0;
}
2024/3/10 09:51
加载中...