답안 #89087

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
89087 2018-12-10T09:42:12 Z Lkvatashidze 생물 실험 (IZhO13_expgorl) C++17
0 / 100
9 ms 2036 KB
#include <bits/stdc++.h>
#define ll long long
using namespace std;

   multiset < pair < ll, ll > > x;
   vector < pair < ll, ll > > v;
   multiset < pair < ll, ll > > st;
   ll n, m, s, ans;

 int main() {

    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

     ll n, m, s;
      cin >> n >> m >> s;

      for (ll k=1; k<=n; k++) {
         ll z, y;
         cin >> z >> y;
         v.push_back({z,y});
      }

       sort(v.begin(),v.end());
       reverse(v.begin(),v.end());

     for (ll k=0; k<m; k++)
        ans+=v[k].first;

     for (ll k=m; k<n; k++) {
        st.insert({v[k].second,v[k].first});
     }

       while (st.size()>s) {
          st.erase(st.begin());
    }

      set < pair < ll, ll > > ::iterator st_it;
      for (st_it=st.begin(); st_it!=st.end(); st_it++)
        ans+=(*st_it).first;

       set < pair < ll, ll > > st1;
      while (!st.empty()) {
         st1.insert({-(*st.begin()).first,(*st.begin()).second});
         st.erase(st.begin());
      }

     for (ll k=1; k<=m; k++) {

        set < pair <ll, ll > > ::iterator st_it;
    for (st_it=st1.begin(); st_it!=st1.end(); st_it++) {
          if (ans-v[k].first+v[k].second<ans+(*st_it).first+(*st_it).second) {
             ans+=((*st_it).first+(*st_it).second);
             ans-=(v[k].first-v[k].second);
             st1.erase(st_it);
             st1.insert({v[k].second,v[k].first});
             break;
          }
    }
}
      cout << ans;

    return 0;
}

Compilation message

expgorl.cpp: In function 'int main()':
expgorl.cpp:35:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
        while (st.size()>s) {
               ~~~~~~~~~^~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 9 ms 2036 KB Output isn't correct
2 Halted 0 ms 0 KB -