| Task: | burek |
| Sender: | siirikuoppala |
| Submission time: | 2016-08-02 16:29:04 +0300 |
| Language: | C++ |
| Status: | READY |
| Result: | 100 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 100 |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.06 s | details |
| #2 | ACCEPTED | 0.06 s | details |
| #3 | ACCEPTED | 0.06 s | details |
| #4 | ACCEPTED | 0.22 s | details |
| #5 | ACCEPTED | 0.30 s | details |
| #6 | ACCEPTED | 0.31 s | details |
| #7 | ACCEPTED | 0.39 s | details |
| #8 | ACCEPTED | 0.38 s | details |
Code
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;
#define F first
#define S second
pair<int,int> X[101010], Y[101010];
vector<pair<int,int>> Xq, Yq;
int V[101010];
int main(){
int n, m;
cin >> n;
for(int i=0; i<n; ++i){
int x, y;
cin >> x >> y;
X[i]={x, x};
Y[i]={y, y};
cin >> x >> y;
X[i].F=min(X[i].F, x);
X[i].S=max(X[i].S, x);
Y[i].F=min(Y[i].F, y);
Y[i].S=max(Y[i].S, y);
cin >> x >> y;
X[i].F=min(X[i].F, x);
X[i].S=max(X[i].S, x);
Y[i].F=min(Y[i].F, y);
Y[i].S=max(Y[i].S, y);
}
sort(X, X+n);
sort(Y, Y+n);
cin >> m;
for(int i=0; i<m; ++i){
char a, b;
int c;
cin >> a >> b >> c;
if(a=='x'){
Xq.push_back({c, i});
}else{
Yq.push_back({c, i});
}
}
sort(Xq.begin(), Xq.end());
sort(Yq.begin(), Yq.end());
priority_queue<int> q;
int a=0;
for(unsigned int i=0; i<Xq.size(); ++i){
int c=Xq[i].F;
while(a<n && X[a].F < c) {
q.push(-X[a].S);
++a;
}while(!q.empty() && -q.top() <=c){
q.pop();
}
V[Xq[i].S]=q.size();
}
a=0;
while(!q.empty()) q.pop();
for(unsigned int i=0; i<Yq.size(); ++i){
int c=Yq[i].F;
while(a<n && Y[a].F < c) {
q.push(-Y[a].S);
++a;
}while(!q.empty() && -q.top() <=c){
q.pop();
}
V[Yq[i].S]=q.size();
}
for(int i=0; i<m; ++i) cout << V[i] << "\n";
}
Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 3
1 0 0 2 2 2 1 3 3 5 4 0 5 4 4 5 4 4 4 ... |
| correct output |
|---|
| 0
1 1 2 |
| user output |
|---|
| 0 1 1 2 |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 4
2 7 6 0 0 5 7 1 7 10 11 11 5 10 2 9 6 8 1 9 10 10 4 1 ... |
| correct output |
|---|
| 3
2 3 2 |
| user output |
|---|
| 3 2 3 2 |
Test 3
Verdict: ACCEPTED
| input |
|---|
| 10
84 4 53 58 73 85 60 24 59 23 1 11 80 69 61 57 83 91 84 91 3 97 1 94 ... |
| correct output |
|---|
| 0
4 1 1 5 ... |
| user output |
|---|
| 0 4 1 1 5 ... |
Test 4
Verdict: ACCEPTED
| input |
|---|
| 70000
523716 152076 196820 312652 75... |
| correct output |
|---|
| 3714
48672 41227 51089 19907 ... |
| user output |
|---|
| 3714 48672 41227 51089 19907 ... |
Test 5
Verdict: ACCEPTED
| input |
|---|
| 100000
554 492 443 655 24 170 867 578 502 743 73 276 738 487 297 633 494 469 753 268 131 447 924 530 ... |
| correct output |
|---|
| 73985
28536 71335 58180 74422 ... |
| user output |
|---|
| 73985 28536 71335 58180 74422 ... |
Test 6
Verdict: ACCEPTED
| input |
|---|
| 99999
556 490 167 620 238 60 214 608 982 363 975 378 557 111 872 233 227 61 58 477 37 808 578 225 ... |
| correct output |
|---|
| 57947
50886 46878 70092 16298 ... |
| user output |
|---|
| 57947 50886 46878 70092 16298 ... |
Test 7
Verdict: ACCEPTED
| input |
|---|
| 99999
521698 336192 884832 495601 73... |
| correct output |
|---|
| 2710
18050 45557 42424 4570 ... |
| user output |
|---|
| 2710 18050 45557 42424 4570 ... |
Test 8
Verdict: ACCEPTED
| input |
|---|
| 100000
702229 435001 483066 464189 74... |
| correct output |
|---|
| 66201
69812 28734 33874 14815 ... |
| user output |
|---|
| 66201 69812 28734 33874 14815 ... |
