結果

問題 No.43 野球の試合
ユーザー GOTKAKO
提出日時 2025-06-27 05:39:53
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 19 ms / 5,000 ms
コード長 1,128 bytes
コンパイル時間 2,324 ms
コンパイル使用メモリ 211,868 KB
実行使用メモリ 7,844 KB
最終ジャッジ日時 2025-06-27 05:39:56
合計ジャッジ時間 3,424 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 7
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);

    int N; cin >> N;
    vector<string> S(N);
    for(auto &s : S) cin >> s;
    vector<pair<int,int>> yet;
    for(int i=0; i<N; i++) for(int k=i+1; k<N; k++){
        if(S.at(i).at(k) == '-') yet.push_back({i,k});
    }
    int n = yet.size(),n2 = 1<<n,answer = 100;
    for(int i=0; i<n2; i++){
        auto S2 = S;
        for(int k=0; k<n; k++){
            auto [x,y] = yet.at(k);
            if(i&(1<<k)){
                S2.at(x).at(y) = 'o';
                S2.at(y).at(x) = 'x';
            }
            else{
                S2.at(x).at(y) = 'x';
                S2.at(y).at(x) = 'o';
            }
        }

        vector<int> Ws,W(N);
        for(int k=0; k<N; k++) for(int l=0; l<N; l++) if(S2.at(k).at(l) == 'o') W.at(k)++;
        for(int k=0; k<N; k++) Ws.push_back(W.at(k));
        sort(Ws.rbegin(),Ws.rend());
        Ws.erase(unique(Ws.begin(),Ws.end()),Ws.end());
        answer = min(answer,(int)(find(Ws.begin(),Ws.end(),W.at(0))-Ws.begin()));
    }
    cout << answer+1 << "\n";
}
0