Submission #1125420

#TimeUsernameProblemLanguageResultExecution timeMemory
1125420Warinchai허수아비 (JOI14_scarecrows)C++20
15 / 100
4086 ms3512 KiB
#include<bits/stdc++.h>
using namespace std;
int N=2005;
struct point{
    int id,x,y;
    point(int _id=0,int _x=0,int _y=0){
        id=_id,x=_x,y=_y;
    }
    friend bool operator<(point a,point b){
        return a.x>b.x;
    }
};
int val[200005];
/*vector<int>lis[200005];
void push(int i,int val){
    int x=lower_bound(lis[i].begin(),lis[i].end(),val)-lis[i].begin();
    if(x==lis[i].size())lis[i].push_back(val);
    else lis[i][x]=val;
}*/
int32_t main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n;cin>>n;
    vector<point>p;
    for(int i=0;i<n;i++){
        int a,b;cin>>a>>b;
        p.push_back(point(i,a+1,b+1));
    }
    sort(p.begin(),p.end());
    int ans=0;
    for(int i=0;i<p.size();i++){
        for(int j=0;j<i;j++){
            if(p[i].y>p[j].y)continue;
            if(p[i].y>val[p[j].id])val[p[j].id]=p[i].y,ans++;
        }
    }
    //for(int i=0;i<p.size();i++)ans+=lis[i].size();
    cout<<ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...