제출 #844273

#제출 시각아이디문제언어결과실행 시간메모리
844273vjudge1Pod starim krovovima (COCI20_psk)C++17
50 / 50
1 ms348 KiB
#include <bits/stdc++.h>
#define fast cin.tie(0)->sync_with_stdio(0);
#define int long long
#define inf ((int)1e18)
#define N 1005
using namespace std;
vector <pair<int, int> > glass(N);
vector <int> ans(N);

int32_t main(){
	fast
	int n;
	cin>>n;
	int all = 0;
	for(int i = 0; i < n; i++) {
		int amount;
		glass[i].second = i;
		cin>>amount>>glass[i].first;
		all += amount;
	}
	sort(glass.begin(), glass.end());
	reverse(glass.begin(), glass.end());
	int fans;
	for(int i = 0; i < n; i++) {
		if(all <= 0) {fans = 0; break; };
		ans[glass[i].second] = min(glass[i].first, all);
		all -= glass[i].first;
		if(all <= 0) {
			fans = n - i - 1;
			break;
		}
	}
	cout<<fans<<"\n";
	for(int i = 0; i < n; i++) {
		cout<<ans[i]<<" ";
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...