Submission #844644

#TimeUsernameProblemLanguageResultExecution timeMemory
844644vjudge1Pod starim krovovima (COCI20_psk)C++11
50 / 50
1 ms600 KiB
#include <bits/stdc++.h> #define lg(a) (31 - __builtin_clz((a))) #define endl ("\n") #define pb push_back #define mp make_pair #define lb lower_bound #define ub upper_bound #define vi vector<int> #define all(aa) aa.begin(), aa.end() #define rall(aa) aa.rbegin(), aa.rend() #define forn(i, n) for(int i=0;i<n;i++) #define trav(e, x) for(auto& e:x) #define until(n, v) (int) (lower_bound(v.begin(), v.end(), n)-v.begin()) //# of elements < n #define after(n, v) (int) (v.end()-upper_bound(v.begin(), v.end(), n)) //# of elements > n #define sameas(n, v) (int) (upper_bound(v.begin(), v.end(), n) - lower_bound(v.begin(), v.end(), n)) //# of elements ==n typedef long long ll; using namespace std; /* */ void solve(){ int n; cin>>n; vector<pair<ll, ll>> V(n); ll liq=0; for(int i=0;i<n;i++){ ll l, v; cin >> l >> v; liq+=l; V[i] = mp(v, i); } sort(rall(V)); vector<ll> ans(n, 0); int empty=n; for(int i=0; liq>0 and i<n;){ ans[V[i].second] = min(liq, V[i].first); liq-=min(liq, V[i].first); i++; empty--; } cout<<empty<<endl; for(auto e: ans) cout<<e<<' '; } int main(){ solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...