Submission #501707

# Submission time Handle Problem Language Result Execution time Memory
501707 2022-01-04T10:49:56 Z tmn2005 Schools (IZhO13_school) C++17
100 / 100
130 ms 13224 KB
#include<bits/stdc++.h>
using namespace std;

typedef long long ll;

#define ar array
#define fr first
#define sc second

#define vec vector
#define ret return

#define ins insert
#define mk make_pair
#define pb push_back
#define pf push_front
#define pob pop_back
#define pof pop_front

#define int long long

#define pii pair<int,int>

#define all(s) s.begin(), s.end()
#define allr(s) s.rbegin(), s.rend()

#define NeedForSpeed ios::sync_with_stdio(0),cin.tie(0);
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
const int N=1e6+12,INF=1e9,mod = 1e9+7;
bool iswowel(char n){ n = toupper(n); if(n == 'A' || n == 'O' || n == 'U' || n == 'E' || n == 'I') return true; else return false;}
int n,m,k,x,y,l,r,o,ans,res,ok,mx,mn = INF;
int a,b,c,pr[N], suff[N];
vec<pii>v;

bool comp(pii a, pii b){
	ret (a.fr - a.sc) > (b.fr - b.sc);
}
main(){
	NeedForSpeed
    cin>>n>>a>>b;    
    for(int i=1; i<=n; i++){
    	cin>>x>>y;
    	v.pb(mk(x, y));
	}
	sort(all(v), comp);
	priority_queue<int, vec<int>, greater<int> >q;
	
	for(int i=0; i<n; i++){
		q.push(v[i].fr);
		l += v[i].fr;
		if(q.size() > a){
			l -= q.top();
			q.pop();
		}
		pr[i] = l;
	}
	while(!q.empty())q.pop();
	
	for(int i=n-1; i>=0; i--){
		q.push(v[i].sc);
		r += v[i].sc;
		if(q.size() > b){
			r -= q.top();
			q.pop();
		}
		suff[i] = r;
	}
	for(int i=0; i<n; i++){
		res = max(res, pr[i] + suff[i+1]);
	}
	cout<<res<<endl;
	
	



	return 0;
}



Compilation message

school.cpp:38:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   38 | main(){
      | ^~~~
school.cpp: In function 'int main()':
school.cpp:51:15: warning: comparison of integer expressions of different signedness: 'std::priority_queue<long long int, std::vector<long long int>, std::greater<long long int> >::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   51 |   if(q.size() > a){
      |      ~~~~~~~~~^~~
school.cpp:62:15: warning: comparison of integer expressions of different signedness: 'std::priority_queue<long long int, std::vector<long long int>, std::greater<long long int> >::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   62 |   if(q.size() > b){
      |      ~~~~~~~~~^~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 328 KB Output is correct
3 Correct 0 ms 276 KB Output is correct
4 Correct 0 ms 332 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 0 ms 332 KB Output is correct
7 Correct 2 ms 588 KB Output is correct
8 Correct 2 ms 588 KB Output is correct
9 Correct 2 ms 588 KB Output is correct
10 Correct 2 ms 588 KB Output is correct
11 Correct 2 ms 588 KB Output is correct
12 Correct 2 ms 580 KB Output is correct
13 Correct 16 ms 2236 KB Output is correct
14 Correct 30 ms 3948 KB Output is correct
15 Correct 57 ms 6448 KB Output is correct
16 Correct 68 ms 10276 KB Output is correct
17 Correct 87 ms 10420 KB Output is correct
18 Correct 100 ms 11136 KB Output is correct
19 Correct 101 ms 11808 KB Output is correct
20 Correct 130 ms 13224 KB Output is correct