Submission #501667

# Submission time Handle Problem Language Result Execution time Memory
501667 2022-01-04T09:31:54 Z tmn2005 Schools (IZhO13_school) C++17
25 / 100
2000 ms 38932 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(all(v));
	multiset<pair<int, pii>>t;
	multiset<pii>s, p;
	
	l = 0;
	for(int i=0; i<y; i++){
		s.ins({v[i].sc.fr, v[i].sc.sc});
		l += v[i].sc.sc;
	}
	for(int i=y; i<n; i++){
		t.ins(v[i]);
		p.ins({v[i].sc.fr, v[i].sc.sc});
	}
	for(int i=y; i<n-x+1; i++){
		auto it = p.end();
		o = x,r = 0;
		while(o--){
			it--;
			r += (it->fr);
		}
		res = max(res, l + r);
		l += t.begin()->sc.sc;
		s.ins({t.begin()->sc.fr, t.begin()->sc.sc});
		p.erase(p.find({t.begin()->sc.fr, t.begin()->sc.sc}));
		
		
		while(s.size() > y){
			l -= s.begin()->sc;
			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:68: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]
   68 |   while(s.size() > y){
      |         ~~~~~~~~~^~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
4 Incorrect 1 ms 204 KB Output isn't correct
5 Incorrect 0 ms 312 KB Output isn't correct
6 Incorrect 1 ms 292 KB Output isn't correct
7 Incorrect 13 ms 952 KB Output isn't correct
8 Correct 3 ms 1036 KB Output is correct
9 Incorrect 21 ms 1032 KB Output isn't correct
10 Incorrect 44 ms 1072 KB Output isn't correct
11 Incorrect 6 ms 780 KB Output isn't correct
12 Incorrect 3 ms 780 KB Output isn't correct
13 Incorrect 1940 ms 5940 KB Output isn't correct
14 Execution timed out 2084 ms 11384 KB Time limit exceeded
15 Incorrect 290 ms 24856 KB Output isn't correct
16 Correct 148 ms 18508 KB Output is correct
17 Execution timed out 2004 ms 27524 KB Time limit exceeded
18 Execution timed out 2093 ms 32448 KB Time limit exceeded
19 Execution timed out 2041 ms 34012 KB Time limit exceeded
20 Execution timed out 2050 ms 38932 KB Time limit exceeded