# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
220235 | MKopchev | Examination (JOI19_examination) | C++14 | 3079 ms | 7920 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
const int nmax=1e5+42;
int n,q;
struct info
{
int first_low,second_low,sum_low,id;
};
info inp[2*nmax];
bool cmp(info a,info b)
{
if(a.sum_low!=b.sum_low)return a.sum_low>b.sum_low;
return a.id<b.id;
}
int x_vals[nmax];
int y_vals[nmax];
int output[nmax];
vector< pair<int,int> > active;
int main()
{
scanf("%i%i",&n,&q);
for(int i=1;i<=n;i++)
{
scanf("%i%i",&inp[i].first_low,&inp[i].second_low);
inp[i].sum_low=inp[i].first_low+inp[i].second_low;
x_vals[i]=inp[i].first_low;
y_vals[i]=inp[i].second_low;
inp[i].id=-1;
}
for(int i=n+1;i<=n+q;i++)
{
scanf("%i%i%i",&inp[i].first_low,&inp[i].second_low,&inp[i].sum_low);
inp[i].id=i-n;
}
sort(inp+1,inp+n+q+1,cmp);
sort(x_vals+1,x_vals+n+1);
sort(y_vals+1,y_vals+n+1);
for(int i=1;i<=n+q;i++)
{
int x_actual=lower_bound(x_vals+1,x_vals+n+1,inp[i].first_low)-x_vals;
int y_actual=lower_bound(y_vals+1,y_vals+n+1,inp[i].second_low)-y_vals;
if(inp[i].id==-1)active.push_back({x_actual,y_actual});
else
{
int ret=0;
for(auto k:active)
if(k.first>=x_actual&&k.second>=y_actual)ret++;
output[inp[i].id]=ret;
}
}
for(int i=1;i<=q;i++)
printf("%i\n",output[i]);
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |