Submission #1114543

#TimeUsernameProblemLanguageResultExecution timeMemory
1114543TsaganaSchools (IZhO13_school)C++14
100 / 100
98 ms6720 KiB
#include<bits/stdc++.h>

#define IOS ios_base::sync_with_stdio(false);cin.tie();cout.tie();
#define all(x) x.begin(), x.end()
#define int long long
#define pq priority_queue
#define eb emplace_back
#define lb lower_bound
#define ub upper_bound
#define pb push_back
#define pp pop_back
#define F first
#define S second
#define sp << ' ' <<
#define nl << '\n'

using namespace std;

bool cmp(pair<int, int> a, pair<int, int> b) {return (a.F - a.S < b.F - b.S ? 1 : 0);}

void solve () {
	int n, m, s; cin >> n >> m >> s;
 
	vector<pair<int, int>> v(n);
	for (auto &i : v) cin >> i.F >> i.S;
	sort(all(v), cmp);
 
	int ans = 0;
	int sum = 0;
	pq<int> q;

	for (int i = 0; i < n; i++) {
		q.push(-v[i].S);
		sum += v[i].S;
		
		while (q.size() > s) {sum += q.top(); q.pop();}
		v[i].S = sum;
	}

	sum = 0;
	pq<int> ().swap(q);

	for (int i = n-1; i >= 0; i--) {
		q.push(-v[i].F);
		sum += v[i].F;
		while (q.size() > m) {sum += q.top(); q.pop();}

		ans = max(ans, sum + (i ? v[i-1].S : 0));
	}
 
	cout << ans;
}
signed main() {IOS solve(); return 0;}

Compilation message (stderr)

school.cpp: In function 'void solve()':
school.cpp:36:19: warning: comparison of integer expressions of different signedness: 'std::priority_queue<long long int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   36 |   while (q.size() > s) {sum += q.top(); q.pop();}
      |          ~~~~~~~~~^~~
school.cpp:46:19: warning: comparison of integer expressions of different signedness: 'std::priority_queue<long long int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   46 |   while (q.size() > m) {sum += q.top(); q.pop();}
      |          ~~~~~~~~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...