結果
問題 | No.3085 Easy Problems |
ユーザー |
|
提出日時 | 2025-02-07 08:22:55 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 705 ms / 2,000 ms |
コード長 | 898 bytes |
コンパイル時間 | 3,861 ms |
コンパイル使用メモリ | 285,428 KB |
実行使用メモリ | 10,112 KB |
最終ジャッジ日時 | 2025-04-04 20:37:08 |
合計ジャッジ時間 | 25,600 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 31 |
ソースコード
#include<bits/stdc++.h> using namespace std; int main(){ int N,Q; cin >> N; vector<pair<int,int>> A(N); for(int i = 0; i < N; i++){ cin >> A[i].first >> A[i].second; } sort(A.begin(),A.end()); vector c(100001,vector<int>(0)); for(int i = 0; i < N; i++){ c[A[i].second].push_back(A[i].first); } cin >> Q; for(int i = 0; i < Q; i++){ int X,Y; cin >> X >> Y; int ok = -1, ng = N; while(abs(ok - ng) > 1){ int mid = (ok + ng) / 2; if(A[mid].first <= X)ok = mid; else ng = mid; } int ans = ok + 1; ok = -1, ng = c[Y].size(); while(abs(ok - ng) > 1){ int mid = (ok + ng) / 2; if(c[Y][mid] <= X)ok = mid; else ng = mid; } ans -= ok + 1; cout << ans << endl; } return 0; }