結果
問題 |
No.606 カラフルタイル
|
ユーザー |
|
提出日時 | 2019-11-13 20:19:55 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 980 bytes |
コンパイル時間 | 650 ms |
コンパイル使用メモリ | 55,392 KB |
実行使用メモリ | 10,880 KB |
最終ジャッジ日時 | 2024-09-21 21:12:10 |
合計ジャッジ時間 | 13,175 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 WA * 1 |
other | AC * 14 WA * 1 TLE * 3 -- * 7 |
ソースコード
#include <iostream> using namespace std; int main(void) { // Your code here! int N, K, Q; char a[100000]; int b[100000], c[100000]; cin >> N >> K >> Q; for (int i = 0; i < Q; i++) { cin >> a[i] >> b[i] >> c[i]; } long int color[100000] = { 0 }; bool rowFlag[100000] = { false }; bool colFlag[100000] = { false }; unsigned long long int baseColor = N * N; for (int i = Q - 1; i >= 0; i--) { int point = N; if (a[i] == 'R') { if (rowFlag[b[i]-1] == true) { point = 0; } else { for (int j = 0; j < N; j++) { if (colFlag[j] == true) point--; } } rowFlag[b[i]-1] = true; } else { if (colFlag[b[i]-1] == true) { point = 0; } else { for (int j = 0; j < N; j++) { if (rowFlag[j] == true) point--; } } colFlag[b[i]-1] = true; } color[c[i]-1] += point; baseColor -= point; } cout << color[0] + baseColor << endl; for (int i = 1; i < K; i++) { cout << color[i] << endl; } return 0; }