結果
問題 | No.43 野球の試合 |
ユーザー |
![]() |
提出日時 | 2016-09-05 03:27:11 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 5 ms / 5,000 ms |
コード長 | 1,066 bytes |
コンパイル時間 | 138 ms |
コンパイル使用メモリ | 24,320 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-11-15 20:18:37 |
合計ジャッジ時間 | 698 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 7 |
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:36:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 36 | scanf("%d", &n); | ~~~~~^~~~~~~~~~ main.cpp:37:26: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 37 | INC(i, n) { scanf("%s", s[i]); } | ~~~~~^~~~~~~~~~~~
ソースコード
#include <cstdio>#define FOR(i, l, r) for(int i = (l) ; i < (r); i++)#define REV(i, l, r) for(int i = (r) - 1; i >= (l); i--)#define INC(i, n) FOR(i, 0, n)#define DEC(i, n) REV(i, 0, n)#define INC1(i, n) FOR(i, 1, (n) + 1)#define DEC1(i, n) REV(i, 1, (n) + 1)typedef long long signed int LL;typedef long long unsigned int LU;int n;char s[6][7];int rank() {int win[6];INC(i, n) { int c = 0;INC(j, n) {if(s[i][j] == 'o') { c++; }} win[i] = c;}int ex[6];INC(i, 6) { ex[i] = 0; }INC(i, n) { ex[ win[i] ]++; }int r = 1;FOR(i, win[0] + 1, 6) { if(ex[i]) { r++; } }return r;}int main() {scanf("%d", &n);INC(i, n) { scanf("%s", s[i]); }int pos[15], num = 0;INC(i, n) {INC(j, i) {if(s[i][j] == '-') { pos[num++] = i * n + j; }}}int best = 6;INC(i, 1 << num) {INC(j, num) {s[ pos[j] / n][ pos[j] % n] = ( i & (1 << j) ? 'o' : 'x');s[ pos[j] % n][ pos[j] / n] = ( i & (1 << j) ? 'x' : 'o');}int r = rank();if(best > r) { best = r; }}printf("%d\n", best);return 0;}