結果
問題 |
No.3126 Dual Query Problem
|
ユーザー |
![]() |
提出日時 | 2025-04-25 21:31:24 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 178 ms / 2,000 ms |
コード長 | 737 bytes |
コンパイル時間 | 3,577 ms |
コンパイル使用メモリ | 287,724 KB |
実行使用メモリ | 10,800 KB |
最終ジャッジ日時 | 2025-06-20 02:40:05 |
合計ジャッジ時間 | 15,464 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 33 |
ソースコード
#include <bits/stdc++.h> using namespace std; using ll = long long; int main() { int N, Q; cin >> N >> Q; map<int, int> pos; vector<tuple<int, int, int>> query; for(int i = 0; i < N; i++) { int x; cin >> x; if(!pos.count(x)) { pos[x] = pos.size() + 1; query.push_back(make_tuple(1, pos.size(), x)); } query.push_back(make_tuple(2, pos[x], 0)); } while(query.size() < Q) { query.push_back(make_tuple(1, 1 << 20, 1)); } if(query.size() <= Q) { cout << "Yes" << "\n"; for(auto [t, p, x] : query) { if(t == 1) { cout << t << " " << p << " " << x << "\n"; }else { cout << t << " " << p << "\n"; } } }else { cout << "No" << "\n"; } }