結果
問題 |
No.3126 Dual Query Problem
|
ユーザー |
![]() |
提出日時 | 2025-06-04 21:59:16 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 389 ms / 2,000 ms |
コード長 | 898 bytes |
コンパイル時間 | 1,355 ms |
コンパイル使用メモリ | 169,712 KB |
実行使用メモリ | 10,496 KB |
最終ジャッジ日時 | 2025-06-20 03:04:28 |
合計ジャッジ時間 | 15,544 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 33 |
ソースコード
#include <bits/stdc++.h> using namespace std; using ll = long long; #define rep(i, n) for(int i = 0; i < n; i++) int main() { int N, Q; cin >> N >> Q; vector<int> x(N), t(Q), p(Q), xx(Q); map<int, int> mp; rep(i, N) { cin >> x[i]; mp[x[i]]++; } int j = 0; for(auto it = mp.begin(); it != mp.end(); it++) { j++; it->second = j; } j = 0; for(auto it = mp.begin(); it != mp.end(); it++) { t[j] = 1; p[j] = it->second; xx[j] = it->first; j++; if(j >= Q) { cout << "No" << endl; return 0; } } rep(k, N) { t[j] = 2; p[j] = mp[x[k]]; j++; if(j >= Q && k + 1 < N) { cout << "No" << endl; return 0; } } while(j < Q) { t[j] = 1; p[j] = j + 1; xx[j] = 1; j++; } cout << "Yes" << endl; rep(i, Q) { if(t[i] == 1) { cout << t[i] << " " << p[i] << " " << xx[i] << endl; } else { cout << t[i] << " " << p[i] << " " << endl; } } }