Submission #89116

#TimeUsernameProblemLanguageResultExecution timeMemory
89116tamazinebSchools (IZhO13_school)C++14
10 / 100
292 ms10176 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,sum=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(sum==y)break;
        if(q1[b[k].second]==0){
            mx1=mx1+b[k].first;
            sum++;
        }
    }



   s=1;
   sum=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(sum==x)break;
        if(q2[a[k].second]==0){
            mx2=mx2+a[k].first;
            sum++;
        }
    }
    cout<<max(mx1,mx2);

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