結果
問題 | No.1149 色塗りゲーム |
ユーザー | yutas |
提出日時 | 2020-08-07 22:44:39 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,482 bytes |
コンパイル時間 | 1,832 ms |
コンパイル使用メモリ | 168,208 KB |
実行使用メモリ | 43,304 KB |
平均クエリ数 | 0.08 |
最終ジャッジ日時 | 2024-07-17 05:02:23 |
合計ジャッジ時間 | 5,525 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 3 TLE * 1 |
ソースコード
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; typedef pair<int, int> Pii; typedef pair<int, ll> Pil; typedef pair<ll, ll> Pll; typedef pair<ll, int> Pli; #define fi first #define se second const ll MOD = 1e9 + 7; const ll MOD2 = 998244353; const ll MOD3 = 1812447359; const ll INF = 1ll << 62; const double PI = 2 * asin(1); void yes() {printf("yes\n");} void no() {printf("no\n");} void Yes() {printf("Yes\n");} void No() {printf("No\n");} void YES() {printf("YES\n");} void NO() {printf("NO\n");} int N, Rest; bool visited[105]; int Count(){ int cnt = 0; if (!visited[1]) cnt++; for (int i = 2; i <= N; i++){ if (!visited[i] && visited[i-1]) cnt++; } return cnt; } int Solve(){ for (int i = 1; i <= N; i++){ if (visited[i]) continue; visited[i] = true; if (Count() % 2 == 0){ Rest--; cout << 1 << " " << i << endl; return 0; } visited[i] = false; } for (int i = 1; i < N; i++){ if (visited[i] || visited[i+1]) continue; visited[i] = true; visited[i+1] = true; if (Count() % 2 == 0){ Rest-=2; cout << 2 << " " << i << endl; return 0; } visited[i] = false; visited[i+1] = false; } return 0; } int main(){ cin >> N; for (int i = 0; i < N; i++){ Solve(); int T; cin >> T; if (T != 3) break; int K, X; cin >> K >> X; for (int j = 0; j < K; j++){ visited[X + i] = true; } } return 0; }