結果
問題 | No.43 野球の試合 |
ユーザー |
|
提出日時 | 2020-07-17 02:27:00 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 42 ms / 5,000 ms |
コード長 | 1,689 bytes |
コンパイル時間 | 1,161 ms |
コンパイル使用メモリ | 114,552 KB |
最終ジャッジ日時 | 2025-01-11 21:43:09 |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 7 |
ソースコード
#include <iostream>#include <vector>#include <algorithm>#include <map>#include <queue>#include <cstdio>#include <ctime>#include <assert.h>#include <chrono>#include <random>#include <numeric>#include <set>using namespace std;typedef long long int ll;typedef unsigned long long ull;char fi[6][6];char pi[6][6];int main(){cin.tie(nullptr);ios::sync_with_stdio(false);int n; cin >> n;for(int i=0;i<n;i++){for(int j=0;j<n;j++){cin >> fi[i][j];}}int res=n;int m=n*(n-1)/2;for(int i=0;i<(1<<m);i++){bool ok=1;int id=0;for(int j=0;j<n;j++){for(int k=0;k<j;k++){if((1<<id)&i){pi[j][k]='o';pi[k][j]='x';if(fi[j][k]=='o'||fi[j][k]=='-'){}else ok=0;}else{pi[j][k]='x';pi[k][j]='o';if(fi[j][k]=='x'||fi[j][k]=='-'){}else ok=0;}id++;}}if(ok){vector<int> win;for(int j=0;j<n;j++){int cnt=0;for(int k=0;k<n;k++){if(pi[j][k]=='o')cnt++;}win.push_back(cnt);}int one=win[0];sort(win.begin(), win.end());win.erase(unique(win.begin(), win.end()),win.end());int ju=1;for(auto p:win){if(p>one)ju++;}res=min(res,ju);}}printf("%d\n",res );}