Submission #219623

#TimeUsernameProblemLanguageResultExecution timeMemory
219623MKopchevExhibition (JOI19_ho_t2)C++14
100 / 100
85 ms4600 KiB
#include<bits/stdc++.h>
using namespace std;
const int nmax=1e5+42;
int n,m;

pair<int/*value*/,int/*size*/> inp[nmax];

int sizes[nmax];

bool test(int current)
{
    int pointer=n;
    for(int i=m;i>=m-current+1;i--)
    {
        while(pointer&&inp[pointer].second>sizes[i])pointer--;
        if(pointer==0)return 0;
        pointer--;
    }

    return 1;
}
int main()
{
    scanf("%i%i",&n,&m);
    for(int i=1;i<=n;i++)scanf("%i%i",&inp[i].second,&inp[i].first);
    sort(inp+1,inp+n+1);

    for(int i=1;i<=m;i++)scanf("%i",&sizes[i]);
    sort(sizes+1,sizes+m+1);

    int ok=0,not_ok=min(n,m)+1;

    while(not_ok-ok>1)
    {
        int av=(ok+not_ok)/2;
        if(test(av))ok=av;
        else not_ok=av;
    }

    printf("%i\n",ok);
    return 0;
}

Compilation message (stderr)

joi2019_ho_t2.cpp: In function 'int main()':
joi2019_ho_t2.cpp:24:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%i%i",&n,&m);
     ~~~~~^~~~~~~~~~~~~~
joi2019_ho_t2.cpp:25:31: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     for(int i=1;i<=n;i++)scanf("%i%i",&inp[i].second,&inp[i].first);
                          ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
joi2019_ho_t2.cpp:28:31: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     for(int i=1;i<=m;i++)scanf("%i",&sizes[i]);
                          ~~~~~^~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...