답안 #208313

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
208313 2020-03-10T16:51:49 Z mohamedsobhi777 학교 설립 (IZhO13_school) C++14
25 / 100
353 ms 12920 KB
#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 , long long > > 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] ) ;
    }
    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(); 
    }
    while(q2.size()> B && q1.size() < A){
        ans+=q2.top().first ; 
        q1.push({b[q2.top().second] - a[q2.top().second] , q2.top().second}) ;
        q2.pop(); 
    }
    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();
        }
    }
    cout<<ans; 
    return 0 ;  
}

Compilation message

school.cpp: In function 'int main()':
school.cpp:28:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while(q1.size()> A && q2.size() < B){
           ~~~~~~~~~^~~
school.cpp:28:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while(q1.size()> A && q2.size() < B){
                           ~~~~~~~~~~^~~
school.cpp:33:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while(q2.size()> B && q1.size() < A){
           ~~~~~~~~~^~~
school.cpp:33:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while(q2.size()> B && q1.size() < A){
                           ~~~~~~~~~~^~~
school.cpp:38:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if(q1.size() > A){
        ~~~~~~~~~~^~~
school.cpp:50:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if(q2.size() > B){
        ~~~~~~~~~~^~~
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 376 KB Output is correct
2 Correct 4 ms 376 KB Output is correct
3 Correct 5 ms 376 KB Output is correct
4 Incorrect 5 ms 376 KB Output isn't correct
5 Incorrect 5 ms 376 KB Output isn't correct
6 Incorrect 5 ms 376 KB Output isn't correct
7 Incorrect 9 ms 504 KB Output isn't correct
8 Correct 9 ms 632 KB Output is correct
9 Incorrect 11 ms 504 KB Output isn't correct
10 Incorrect 9 ms 632 KB Output isn't correct
11 Incorrect 10 ms 632 KB Output isn't correct
12 Incorrect 11 ms 636 KB Output isn't correct
13 Incorrect 42 ms 1900 KB Output isn't correct
14 Incorrect 108 ms 3588 KB Output isn't correct
15 Incorrect 193 ms 6956 KB Output isn't correct
16 Correct 192 ms 8960 KB Output is correct
17 Incorrect 252 ms 9076 KB Output isn't correct
18 Incorrect 287 ms 9880 KB Output isn't correct
19 Incorrect 316 ms 10640 KB Output isn't correct
20 Incorrect 353 ms 12920 KB Output isn't correct