結果
問題 | No.1225 I hate I hate Matrix Construction |
ユーザー |
![]() |
提出日時 | 2020-09-11 21:47:34 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 3 ms / 2,000 ms |
コード長 | 1,609 bytes |
コンパイル時間 | 1,894 ms |
コンパイル使用メモリ | 176,144 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-12-27 11:03:41 |
合計ジャッジ時間 | 3,154 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 35 |
ソースコード
#include "bits/stdc++.h"//#include <atcoder/all>using namespace std;//using namespace atcoder;#define ll long longll INF = (1LL << 60);signed main() {int N; cin >> N;vector<int>S(N), T(N);for (int i = 0; i < N; i++)cin >> S[i];for (int i = 0; i < N; i++)cin >> T[i];vector<vector<int>>G(N, vector<int>(N));vector<bool>okS(N), okT(N);for (int i = 0; i < N; i++) {if (S[i] == 2) {for (int j = 0; j < N; j++) {G[i][j] = 1;okS[j] = true;}}if (T[i] == 2) {for(int j = 0; j < N; j++){G[j][i] = 1;okT[j] = true;}}}for (int i = 0; i < N; i++) {bool ok = false;for (int j = 0; j < N; j++) {if (G[i][j] == 1)ok = true;}if (S[i] == 1 && !ok) {for (int j = 0; j < N; j++) {if (!okT[j] && T[j] != 0) {G[i][j] = 1;okS[i] = true;okT[j] = true;goto t;}}for (int j = 0; j < N; j++) {if (okT[j]) {G[i][j] = 1;okS[i] = true;okT[j] = true;goto t;}}t:;}}for (int i = 0; i < N; i++) {bool ok = false;for (int j = 0; j < N; j++) {if (G[j][i] == 1)ok = true;}if (T[i] == 1 && !ok) {for (int j = 0; j < N; j++) {if (!okS[j] && S[j] != 0) {G[j][i] = 1;okS[j] = true;okT[i] = true;goto f;}}for (int j = 0; j < N; j++) {if (okS[j]) {G[j][i] = 1;okS[j] = true;okT[i] = true;goto f;}}f:;}}int ans = 0;for (int i = 0; i < N; i++)for (int j = 0; j < N; j++) {if (G[i][j]) {ans++;}}cout << ans << endl;return 0;}