結果
問題 | No.43 野球の試合 |
ユーザー | nomi |
提出日時 | 2018-06-23 17:53:46 |
言語 | C++14 (gcc 12.3.0 + boost 1.83.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,778 bytes |
コンパイル時間 | 1,742 ms |
コンパイル使用メモリ | 180,640 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-06-30 18:29:53 |
合計ジャッジ時間 | 2,313 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 2 ms
6,812 KB |
testcase_01 | AC | 2 ms
6,944 KB |
testcase_02 | AC | 2 ms
6,944 KB |
testcase_03 | AC | 2 ms
6,944 KB |
testcase_04 | AC | 2 ms
6,940 KB |
testcase_05 | AC | 2 ms
6,940 KB |
testcase_06 | AC | 2 ms
6,940 KB |
testcase_07 | AC | 2 ms
6,940 KB |
testcase_08 | AC | 2 ms
6,944 KB |
testcase_09 | AC | 2 ms
6,944 KB |
testcase_10 | WA | - |
ソースコード
#include <bits/stdc++.h> using namespace std; using pii = pair<int, int>; int N; char B[10][10]; int h = 0; int ans = 100; void print() { for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { printf("%c", B[i][j]); } puts(""); } } bool exist() { for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { if (B[i][j] == '-') return true; } } return false; } int result() { map<int, int> mp; for (int i = 0; i < N; i++) { mp[i] = 0; } for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { if (B[i][j] == 'o') { mp[i]++; } } } set<int> S; for (auto x:mp) { S.insert(x.second); } int cnt = 1; for (auto itr = S.rbegin(); itr != S.rend(); itr++) { if (*itr == mp[0]) { return cnt; } cnt++; } return 100; } void dfs() { if (!exist()) { // print(); // int res = result(); // printf("res: %d\n", res); // puts("---------------"); ans = min(ans, result()); } for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { if (B[i][j] == '-') { B[i][j] = 'o'; B[j][i] = 'x'; dfs(); B[i][j] = 'x'; B[j][i] = 'o'; dfs(); B[i][j] = '-'; return; } } } } int main() { cin >> N; for (int i = 0; i < N; i++) { cin >> B[i]; } for (int i = 0; i < N; i++) { if (B[0][i] == '-') { B[0][i] = 'o'; B[i][0] = 'x'; } } for (int i = 0; i < N; i++) { if (B[0][i] == '-') { B[0][i] = 'o'; B[i][0] = 'x'; } } dfs(); cout << ans << endl; return 0; }