제출 #89063

#제출 시각아이디문제언어결과실행 시간메모리
89063luka1234학교 설립 (IZhO13_school)C++14
10 / 100
282 ms10204 KiB
#include <bits/stdc++.h>

using namespace std;
int q1[10001],q2[10001];
int main()
{
    int n,x,y,mx1=0,mx2=0,s=1,hhh=0;
    cin>>n>>x>>y;
    pair<int,int> a[n],b[n];

    for(int k=0;k<n;k++){
        cin>>a[k].first;
        cin>>a[k].second;
        b[k].first=a[k].second;
        b[k].second=a[k].first;
    }

    sort(a,a+n);
    sort(b,b+n);

    for(int k=0;k<x;k++){
        mx1=mx1+a[n-s].first;
        q1[a[n-s].first]=1;
        s++;
    }
    for(int k=n-1;k>=0;k--){
        if(hhh==y)break;
        if(q1[b[k].second]==0){
            mx1=mx1+b[k].first;
            hhh++;
        }
    }



   s=1;
   hhh=0;

   for(int k=0;k<y;k++){
        mx2=mx2+b[n-s].first;
        q2[b[n-s].first]=1;
        s++;
    }
    for(int k=n-1;k>=0;k--){
        if(hhh==x)break;
        if(q2[a[k].second]==0){
            mx2=mx2+a[k].first;
            hhh++;
        }
    }
    cout<<max(mx1,mx2);

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...