結果
問題 | No.606 カラフルタイル |
ユーザー |
![]() |
提出日時 | 2017-12-07 22:37:23 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 35 ms / 2,000 ms |
コード長 | 993 bytes |
コンパイル時間 | 889 ms |
コンパイル使用メモリ | 73,172 KB |
実行使用メモリ | 12,496 KB |
最終ジャッジ日時 | 2024-11-29 05:22:14 |
合計ジャッジ時間 | 2,373 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 25 |
ソースコード
#include <iostream>#include <map>using namespace std;using int64 = long long;int main() {cin.tie(0);ios::sync_with_stdio(false);int64 N;int K, Q;cin >> N >> K >> Q;map<string, int> mp;mp["R"] = 0;mp["C"] = 1;const int maxq = 200000;const int maxn = 200000;const int maxk = 200000;static string A[maxq];static int B[maxq], C[maxq];static bool used[2][maxn];static int64 ans[maxk];for (int i = 0; i < Q; i++) {cin >> A[i] >> B[i] >> C[i];B[i]--; C[i]--;}int64 cnt[2] = {0, 0};for (int i = Q - 1; i >= 0; i--) {int rc = mp[A[i]];if (used[rc][B[i]]) continue;used[rc][B[i]] = true;ans[C[i]] += N - cnt[rc ^ 1];cnt[rc]++;}int64 sum = 0;for (int i = 0; i < K; i++) {sum += ans[i];}ans[0] += N * N - sum;for (int i = 0; i < K; i++) {cout << ans[i] << '\n';}return 0;}