Submission #220235

#TimeUsernameProblemLanguageResultExecution timeMemory
220235MKopchevExamination (JOI19_examination)C++14
2 / 100
3079 ms7920 KiB
#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)

examination.cpp: In function 'int main()':
examination.cpp:27:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%i%i",&n,&q);
     ~~~~~^~~~~~~~~~~~~~
examination.cpp:31:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%i%i",&inp[i].first_low,&inp[i].second_low);
         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
examination.cpp:42:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%i%i%i",&inp[i].first_low,&inp[i].second_low,&inp[i].sum_low);
         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...