Submission #501692

# Submission time Handle Problem Language Result Execution time Memory
501692 2022-01-04T10:20:49 Z tmn2005 Schools (IZhO13_school) C++17
20 / 100
2000 ms 40028 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,l,r,o,ans,res,ok,mx,mn = INF;
vec<pair<int, pii>>v;

main(){
	NeedForSpeed
	int x, y;
    cin>>n>>x>>y;    
    for(int i=1; i<=n; i++){
    	cin>>l>>r;
    	v.pb(mk(l-r, mk(l, r)));
	}
	sort(allr(v));
	multiset<pair<int, pii>>t;
	multiset<pii>s, p;
	
	l = 0;
	for(int i=0; i<x; i++){
		s.ins({v[i].sc.fr, v[i].sc.sc});
		l += v[i].sc.fr;
	}
	for(int i=x; i<n; i++){
		t.ins(v[i]);
		p.ins({v[i].sc.sc, v[i].sc.fr});
	}
	for(int i=x; i<n-y+1; i++){
		auto it = p.end();
		o = y,r = 0;
		while(o--){
			it--;
			r += (it->fr);
		}
		//cout<<l<<" "<<r<<endl;
		res = max(res, l + r);
		r += t.begin()->sc.fr;
		s.ins({t.begin()->sc.sc, t.begin()->sc.fr});
		p.erase(p.find({t.begin()->sc.sc, t.begin()->sc.fr}));
		while(s.size() > x){
			r -= s.begin()->fr;
			s.erase(s.begin());
		}
		t.erase(t.begin());
	}
	cout<<res<<endl;

	return 0;
}



Compilation message

school.cpp:34:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   34 | main(){
      | ^~~~
school.cpp: In function 'int main()':
school.cpp:67:18: warning: comparison of integer expressions of different signedness: 'std::multiset<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   67 |   while(s.size() > x){
      |         ~~~~~~~~~^~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
2 Execution timed out 2061 ms 204 KB Time limit exceeded
3 Correct 1 ms 316 KB Output is correct
4 Incorrect 0 ms 204 KB Output isn't correct
5 Incorrect 0 ms 204 KB Output isn't correct
6 Incorrect 0 ms 312 KB Output isn't correct
7 Incorrect 35 ms 908 KB Output isn't correct
8 Correct 2 ms 732 KB Output is correct
9 Incorrect 3 ms 772 KB Output isn't correct
10 Incorrect 3 ms 720 KB Output isn't correct
11 Incorrect 40 ms 1028 KB Output isn't correct
12 Incorrect 57 ms 1028 KB Output isn't correct
13 Incorrect 63 ms 4064 KB Output isn't correct
14 Execution timed out 2031 ms 12012 KB Time limit exceeded
15 Execution timed out 2086 ms 24744 KB Time limit exceeded
16 Correct 198 ms 26748 KB Output is correct
17 Execution timed out 2099 ms 28824 KB Time limit exceeded
18 Execution timed out 2021 ms 31632 KB Time limit exceeded
19 Execution timed out 2080 ms 34340 KB Time limit exceeded
20 Execution timed out 2089 ms 40028 KB Time limit exceeded