답안 #671902

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
671902 2022-12-14T08:34:27 Z Alihan_8 학교 설립 (IZhO13_school) C++17
25 / 100
127 ms 9508 KB
#include <bits/stdc++.h>
// include <ext/pb_ds/assoc_container.hpp>
// include <ext/pb_ds/tree_policy.hpp>
// using namespace __gnu_pbds;
using namespace std;
#define all(x) x.begin(), x.end()
#define pb push_back
// define ordered_set tree<int,null_type,less_equal<int>,rb_tree_tag,tree_order_statistics_node_update>
#define mpr make_pair
#define ln '\n'
void IO(string name){freopen((name+".in").c_str(),"r",stdin); freopen((name+".out").c_str(),"w",stdout);}
#define int long long
signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int n, a, b; cin >> n >> a >> b;
    vector <pair<int,int>> p(n);
    for ( auto &[l, r]: p ) cin >> l >> r;
    vector <int> pos(n);
    iota(all(pos), 0);
    sort(all(pos), [&](int &x, int &y){
         return p[x].first+p[y].second > p[y].first+p[x].second;
    });
    int cnt = 0;
    priority_queue <int> q;
    for ( int i = 0; i < a; i++ ) cnt += p[pos[i]].first;
    for ( int i = a; i < n; i++ ) q.push(p[pos[i]].second);
    int _b = b;
    while ( b-- ){
        cnt += q.top(); q.pop();
    } b = _b;
    int Mx = cnt; cnt = 0;
    iota(all(pos), 0);
    sort(all(pos), [&](int &x, int &y){
         return p[x].second+p[y].first < p[y].second+p[x].first;
    });
    while ( !q.empty() ) q.pop();
    for ( int i = 0; i < b; i++ ) cnt += p[pos[i]].second;
    for ( int i = b; i < n; i++ ) q.push(p[pos[i]].first);
    while ( a-- ){
        cnt += q.top(); q.pop();
    }
    cout << max(cnt, Mx);

    cout << '\n';
}

Compilation message

school.cpp: In function 'void IO(std::string)':
school.cpp:11:29: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   11 | void IO(string name){freopen((name+".in").c_str(),"r",stdin); freopen((name+".out").c_str(),"w",stdout);}
      |                      ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
school.cpp:11:70: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   11 | void IO(string name){freopen((name+".in").c_str(),"r",stdin); freopen((name+".out").c_str(),"w",stdout);}
      |                                                               ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Incorrect 0 ms 212 KB Output isn't correct
5 Incorrect 0 ms 212 KB Output isn't correct
6 Incorrect 0 ms 212 KB Output isn't correct
7 Incorrect 3 ms 468 KB Output isn't correct
8 Correct 2 ms 468 KB Output is correct
9 Incorrect 2 ms 468 KB Output isn't correct
10 Incorrect 2 ms 468 KB Output isn't correct
11 Incorrect 2 ms 468 KB Output isn't correct
12 Incorrect 2 ms 468 KB Output isn't correct
13 Incorrect 16 ms 1796 KB Output isn't correct
14 Incorrect 37 ms 3320 KB Output isn't correct
15 Incorrect 80 ms 6208 KB Output isn't correct
16 Correct 85 ms 6708 KB Output is correct
17 Incorrect 88 ms 7624 KB Output isn't correct
18 Incorrect 102 ms 8136 KB Output isn't correct
19 Incorrect 110 ms 8484 KB Output isn't correct
20 Incorrect 127 ms 9508 KB Output isn't correct