結果
問題 |
No.3085 Easy Problems
|
ユーザー |
![]() |
提出日時 | 2025-04-05 00:47:56 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 380 ms / 2,000 ms |
コード長 | 1,343 bytes |
コンパイル時間 | 5,039 ms |
コンパイル使用メモリ | 288,840 KB |
実行使用メモリ | 18,816 KB |
最終ジャッジ日時 | 2025-04-05 00:48:15 |
合計ジャッジ時間 | 17,345 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 31 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define For(i, a, b) for(int i = (a); i < (b); i++) #define rep(i, n) For(i, 0, n) #define rFor(i, a, b) for(int i = (a); i >= (b); i--) #define ALL(v) (v).begin(), (v).end() #define rALL(v) (v).rbegin(), (v).rend() using lint = long long; using ld = long double; int INF = 2000000000; lint LINF = 1000000000000000000; struct SetupIo { SetupIo() { ios::sync_with_stdio(false); cin.tie(nullptr); cout << fixed << setprecision(15); } } setupio; int main() { int n; cin >> n; vector<int> a(n), b(n); rep(i, n) { cin >> a[i] >> b[i]; } int q; cin >> q; vector<int> x(q), y(q); rep(i, q) { cin >> x[i] >> y[i]; } vector<int> diff = a; sort(ALL(diff)); vector<int> ans(q, 0); rep(i, q) { int id = upper_bound(ALL(diff), x[i]) - diff.begin(); ans[i] = id; } map<int, vector<int>> mp; rep(i, n) { mp[b[i]].emplace_back(a[i]); } for (auto &[bunya, vec] : mp) { sort(ALL(vec)); } rep(i, q) { if (!mp.count(y[i])) { continue; } auto &vec = mp[y[i]]; int id = upper_bound(ALL(vec), x[i]) - vec.begin(); ans[i] -= id; } rep(i, q) { cout << ans[i] << "\n"; } }