結果
| 問題 | No.43 野球の試合 | 
| コンテスト | |
| ユーザー |  msm1993 | 
| 提出日時 | 2020-03-31 17:45:10 | 
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 16 ms / 5,000 ms | 
| コード長 | 841 bytes | 
| コンパイル時間 | 1,939 ms | 
| コンパイル使用メモリ | 182,136 KB | 
| 実行使用メモリ | 6,944 KB | 
| 最終ジャッジ日時 | 2024-06-24 21:33:55 | 
| 合計ジャッジ時間 | 2,234 ms | 
| ジャッジサーバーID (参考情報) | judge1 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 4 | 
| other | AC * 7 | 
ソースコード
#include <bits/stdc++.h>
using namespace std;
template<typename T>
void chmin(T &a,T b){
  if(a>b)a=b;
}
typedef pair<int,int> P;
signed main(){
  int n;cin>>n;
  vector<string> s(n);
  for(int i=0;i<n;i++)cin>>s[i];
  int ans=100;
  vector<P> v;
  for(int i=0;i<n;i++){
    for(int j=i+1;j<n;j++){
      if(s[i][j]=='-')v.push_back(P(i,j));
    }
  }
  int a=v.size();
  for(int bit=0;bit<(1<<a);bit++){
    vector<string> t(n);
    for(int i=0;i<n;i++)t[i]=s[i];
    for(int i=0;i<a;i++){
      if((bit>>i)&1)t[v[i].first][v[i].second]='o';
      else t[v[i].second][v[i].first]='o';
    }
    vector<int> win(n,0);
    for(int i=0;i<n;i++)for(int j=0;j<n;j++)win[i]-=t[i][j]=='o';
    map<int,int> m;
    for(int i=0;i<n;i++)m[win[i]];
    int cnt=1;
    for(auto &p:m)p.second=cnt++;
    chmin(ans,m[win[0]]);
  }
  cout<<ans<<endl;
}
            
            
            
        