結果
問題 | No.2692 How Many Times Reached? |
ユーザー |
![]() |
提出日時 | 2024-03-02 19:41:15 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,478 bytes |
コンパイル時間 | 1,884 ms |
コンパイル使用メモリ | 171,944 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-09-29 16:25:58 |
合計ジャッジ時間 | 3,314 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 43 |
ソースコード
#include<bits/stdc++.h> #define chmin(x,y) (x) = min((x),(y)) #define chmax(x,y) (x) = max((x),(y)) using namespace std; using ll = long long; int main(){ // input int N; cin >> N; assert(2 <= N && N <= 100); vector<string> v; string s; while(cin >> s){ assert(s.size() == N); v.push_back(s); } assert(v.size() == N); // solve int ans = 0; int a_num = 0, b_num = 0; // check tate + assert for(int i = 0; i < N; i++){ int a = 0, b = 0; for(int j = 0; j < N; j++){ if(v[i][j] == 'A'){ a++; a_num++; } else if(v[i][j] == 'B'){ b++; b_num++; } assert(v[i][j] == 'A' || v[i][j] == 'B' || v[i][j] == '.'); } if(a == N-1 && b == 0) ans++; assert(a < N); assert(b < N); } // check yoko for(int j = 0; j < N; j++){ int a = 0, b = 0; for(int i = 0; i < N; i++){ if(v[i][j] == 'A') a++; else if(v[i][j] == 'B') b++; } if(a == N-1 && b == 0) ans++; assert(a < N); assert(b < N); } // check naname int a1 = 0, a2 = 0, b1 = 0, b2 = 0; for(int i = 0; i < N; i++){ if(v[i][i] == 'A') a1++; if(v[i][i] == 'B') b1++; if(v[i][N-1-i] == 'A') a2++; if(v[i][N-1-i] == 'B') b2++; } if(a1 == N-1 && b1 == 0) ans++; if(a2 == N-1 && b2 == 0) ans++; // assert assert(a1 < N && a2 < N && b1 < N && b2 < N); assert(a_num == b_num); // output assert(ans > 0); cout << ans << endl; }