Submission #501707

#TimeUsernameProblemLanguageResultExecution timeMemory
501707tmn2005Schools (IZhO13_school)C++17
100 / 100
130 ms13224 KiB
#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 (stderr)

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 timeMemoryGrader output
Fetching results...