結果
問題 | No.43 野球の試合 |
ユーザー |
![]() |
提出日時 | 2017-12-24 11:54:00 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 8 ms / 5,000 ms |
コード長 | 2,058 bytes |
コンパイル時間 | 1,126 ms |
コンパイル使用メモリ | 92,780 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-12-17 18:25:38 |
合計ジャッジ時間 | 1,700 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 7 |
ソースコード
#include <algorithm>#include <cmath>#include <cstdio>#include <cstring>#include <deque>#include <iostream>#include <map>#include <queue>#include <set>#include <stack>#include <string>#include <utility>#include <vector>#define CK(N, A, B) (A <= N && N < B)#define REP(i, a, b) for (int i = a; i < b; i++)#define RREP(i, a, b) for (int i = (b - 1); a <= i; i--)#define F first#define S second#define ll long longconst int INF = 1e9;const long long LLINF = 1e18;using namespace std;int dy[] = {0,1,0,-1};int dx[] = {1,0,-1,0};int dy8[] = {0,1,1,1,0,-1,-1,-1};int dx8[] = {1,1,0,-1,-1,-1,0,1};/*==================================================*//*variable*/int N;string S[10];/*==================================================*//*function*//*==================================================*/int main() {cin>>N;REP(i,0,N){cin>>S[i];}REP(i,0,N){if(S[0][i] == '_'){S[0][i] = 'o';S[i][0] = 'x';}}REP(i,1,N){REP(j,0,N){REP(k,0,2){if(S[i][j] != '#') break;}}}vector<int> v;int games = (N*N-N)/2;REP(mask, 0, (1<<games)){int game = 0;pair<int, int> point[6];REP(i,0,N) point[i] = make_pair(0, i);REP(i,0,N){REP(j,0,N){if(i >= j) continue;if(S[i][j] == '-'){if(mask & (1<<game)) point[i].F++;else point[j].F++;}else{if(S[i][j] == 'o') point[i].F++;else point[j].F++;}game++;}}sort(point, point+N);int rank = 1;RREP(i,0,N){if(i < N-1){if(point[i].F < point[i+1].F) rank++;}if(point[i].S == 0){v.push_back(rank);}}}sort(v.begin(), v.end());cout<<v[0]<<endl;return 0;}