답안 #208312

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
208312 2020-03-10T16:43:45 Z mohamedsobhi777 학교 설립 (IZhO13_school) C++14
25 / 100
342 ms 11252 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<int> 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<int> 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 5 ms 256 KB Output is correct
3 Correct 5 ms 376 KB Output is correct
4 Incorrect 5 ms 248 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 10 ms 632 KB Output isn't correct
8 Correct 9 ms 632 KB Output is correct
9 Incorrect 9 ms 504 KB Output isn't correct
10 Incorrect 9 ms 632 KB Output isn't correct
11 Incorrect 10 ms 504 KB Output isn't correct
12 Incorrect 10 ms 632 KB Output isn't correct
13 Incorrect 44 ms 1872 KB Output isn't correct
14 Incorrect 90 ms 3204 KB Output isn't correct
15 Incorrect 201 ms 6232 KB Output isn't correct
16 Correct 176 ms 8832 KB Output is correct
17 Incorrect 255 ms 8152 KB Output isn't correct
18 Incorrect 277 ms 8916 KB Output isn't correct
19 Incorrect 289 ms 9488 KB Output isn't correct
20 Incorrect 342 ms 11252 KB Output isn't correct