Submission #208343

#TimeUsernameProblemLanguageResultExecution timeMemory
208343mohamedsobhi777Schools (IZhO13_school)C++14
5 / 100
333 ms11208 KiB
#include<bits/stdc++.h> 
 
using namespace std ;

const int N = 1e6 + 7 , mod = 998244353; 

long long n   , A , B ; 
long long a[N] , b[N] ; 
long long ans ; 
int vis[N]; 

int main() 
{
    //freopen("in.in" , "r" , stdin) ; 
    cin>>n>>A>>B ; 
    vector<pair<int , int > > v , v2 ; 
    for(int i = 0 ; i < n ; i++){
        cin>>a[i] >> b[i] ;
        v.push_back({-a[i] , i}) ; 
        v2.push_back({-b[i] , i});
    }
    sort(v.begin() , v.end()) ;
    sort(v2.begin() , v2.end()) ; 
    int j = A;
    for(int i=  0 ; i < A ; i++){
        ans-=v[i].first ; 
        vis[v[i].second] = 1 ; 
    }

    for(int i = 0 ; i < B ; i++){
        int val = -v2[i].first ; 
        int idx = v2[i].second ;
        if(vis[idx]++) {
            while(vis[v[j].second]){
                j++;
            }
            if( val - v[j] .first > - v[i].first  )
            {
                vis[ v[j].second ] = 1 ; 
                ans+=val -v[j].first + v[i] .first ; 
            }
            else {
                B++;
            }
        }
        else {
            ans+=val; 
        }
    }
    cout<<ans; 
    return 0 ;  
}
#Verdict Execution timeMemoryGrader output
Fetching results...