結果
問題 |
No.1717 Levi-Civita Triangle
|
ユーザー |
|
提出日時 | 2021-08-05 18:38:34 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 36 ms / 2,000 ms |
コード長 | 1,204 bytes |
コンパイル時間 | 2,056 ms |
コンパイル使用メモリ | 197,024 KB |
最終ジャッジ日時 | 2025-01-23 14:16:54 |
ジャッジサーバーID (参考情報) |
judge2 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 42 |
ソースコード
#include <bits/stdc++.h> using namespace std; int LeviCivitaSymbol(int a, int b, int c) { if (a == b || b == c || c == a) { return 0; } else { return (b - a + 3) % 3; } } int main() { int N; cin >> N; vector<int> As(2 * N + 1); for (int i = 0; i < 2 * N + 1; i++) { cin >> As[i]; } int N_2 = N - 1; vector<int> As_2(2 * N - 1); for (int i = 0; i < 2 * N - 1; i++) { As_2[i] = LeviCivitaSymbol(As[i], As[i + 1], As[i + 2]); } vector<int> one, two; if (N_2 % 2 == 0) { one = {1, 0, 2, 0}; two = {2, 0, 1, 0}; } else { one = {2, 0, 1, 0}; two = {1, 0, 2, 0}; } bool flg1 = true; for (int i = 0; i < 2 * N_2 + 1; i++) { if (As_2[i] != one[i % 4]) { flg1 = false; break; } } if (flg1) { cout << 1 << endl; return 0; } bool flg2 = true; for (int i = 0; i < 2 * N_2 + 1; i++) { if (As_2[i] != two[i % 4]) { flg2 = false; break; } } if (flg2) { cout << 2 << endl; return 0; } cout << 0 << endl; return 0; }