답안 #208317

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
208317 2020-03-10T17:09:20 Z mohamedsobhi777 학교 설립 (IZhO13_school) C++14
5 / 100
365 ms 15224 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< pair<long long , 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], b[i] -a[i]},i });
        }
        else {
            q2.push({{ a[i] , a[i] - b[i] }, i}) ; 
        }
        ans += max(a[i] , b[i] ) ;
    }
    while(q1.size()> A && q2.size() < B){
        ans+=q1.top().first.second ; 
        q2.push({ { a[q1.top().second] ,a[q1.top().second] - b[q1.top().second] },q1.top().second });
        q1.pop(); 
    }

    while(q2.size()> B && q1.size() < A){
        ans+=q2.top().first.second ; 
        q1.push({ {b[q2.top().second] , 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:34:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while(q2.size()> B && q1.size() < A){
           ~~~~~~~~~^~~
school.cpp:34:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while(q2.size()> B && q1.size() < A){
                           ~~~~~~~~~~^~~
school.cpp:39:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if(q1.size() > A){
        ~~~~~~~~~~^~~
school.cpp:51:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if(q2.size() > B){
        ~~~~~~~~~~^~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 376 KB Output isn't correct
2 Correct 5 ms 376 KB Output is correct
3 Incorrect 4 ms 248 KB Output isn't correct
4 Incorrect 5 ms 376 KB Output isn't correct
5 Incorrect 4 ms 376 KB Output isn't correct
6 Incorrect 5 ms 376 KB Output isn't correct
7 Incorrect 9 ms 632 KB Output isn't correct
8 Incorrect 9 ms 760 KB Output isn't correct
9 Incorrect 9 ms 632 KB Output isn't correct
10 Incorrect 9 ms 632 KB Output isn't correct
11 Incorrect 9 ms 632 KB Output isn't correct
12 Incorrect 9 ms 760 KB Output isn't correct
13 Incorrect 39 ms 2160 KB Output isn't correct
14 Incorrect 92 ms 4244 KB Output isn't correct
15 Incorrect 196 ms 8300 KB Output isn't correct
16 Incorrect 178 ms 11600 KB Output isn't correct
17 Incorrect 251 ms 10768 KB Output isn't correct
18 Incorrect 294 ms 11716 KB Output isn't correct
19 Incorrect 300 ms 12464 KB Output isn't correct
20 Incorrect 365 ms 15224 KB Output isn't correct