제출 #208321

#제출 시각아이디문제언어결과실행 시간메모리
208321mohamedsobhi777학교 설립 (IZhO13_school)C++14
25 / 100
354 ms12924 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 gA , gB ; priority_queue<pair< long long , int > > q1 , q2 ; int main() { // freopen("in.in" , "r" , stdin) ; cin>>n>>A>>B ; for(int i = 0 ; i < n ; i++){ cin>>a[i] >> b[i] ; if(a[i]>=b[i]){ q1.push({ b[i] -a[i],i }); } else { q2.push({ a[i] - b[i] , i}) ; } ans += max(a[i] , b[i] ) ; } if(q1.size() > A && q2.size() > B) { if(q1.size() > A){ gA = q1.size() -A ; priority_queue<long long> aux ; while(q1.size()){ aux.push(-a[q1.top().second]) ; q1.pop() ; } while(gA--){ ans+=aux.top() ; aux.pop(); } } if(q2.size() > B){ gB = q2.size() -B ; priority_queue<long long> aux ; while(q2.size()){ aux.push(-b[q2.top().second]) ; q2.pop() ; } while(gB--){ ans+=aux.top() ; aux.pop(); } } } while(q1.size()> A && q2.size() < B){ ans+=q1.top().first ; q2.push({a[q1.top().second] - b[q1.top().second] ,q1.top().second }); q1.pop(); } if(q1.size() > A){ priority_queue< pair<long long , int > > aux1, aux2 ; while(q1.size()) { aux1.push( { b[q1.top().second] ,q1.top().second }); q1.pop(); } while(q2.size()) { aux2.push({-b[q2.top().second] , q2.top().second }); q2.pop(); } while(aux1.size() > A && aux2.size() < B && aux1.top().first>=-aux2.top().first ) { ans+=aux2.top().first; ans+=aux2.top().first; aux2.pop(); aux2.push({-aux1.top().first ,aux1.top().second }); aux1.pop(); } for(int i = 0 ; i < A ; i++) aux1.pop(); while(aux1.size()){ ans-=a[aux1.top().second]; aux1.pop(); } } while(q2.size()> B){ ans+=q2.top().first ; q1.push({b[q2.top().second] - a[q2.top().second] , q2.top().second}) ; q2.pop(); } cout<<ans; return 0 ; }

컴파일 시 표준 에러 (stderr) 메시지

school.cpp: In function 'int main()':
school.cpp:29:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if(q1.size() > A && q2.size() > B)
        ~~~~~~~~~~^~~
school.cpp:29:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if(q1.size() > A && q2.size() > B)
                         ~~~~~~~~~~^~~
school.cpp:31:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         if(q1.size() > A){
            ~~~~~~~~~~^~~
school.cpp:43:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         if(q2.size() > B){
            ~~~~~~~~~~^~~
school.cpp:57:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while(q1.size()> A && q2.size() < B){
           ~~~~~~~~~^~~
school.cpp:57:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while(q1.size()> A && q2.size() < B){
                           ~~~~~~~~~~^~~
school.cpp:64:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if(q1.size() > A){
        ~~~~~~~~~~^~~
school.cpp:77:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         while(aux1.size() > A && aux2.size()  < B && aux1.top().first>=-aux2.top().first ) {
               ~~~~~~~~~~~~^~~
school.cpp:77:47: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         while(aux1.size() > A && aux2.size()  < B && aux1.top().first>=-aux2.top().first ) {
                                  ~~~~~~~~~~~~~^~~
school.cpp:92:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while(q2.size()> B){
           ~~~~~~~~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...