#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define fi first
#define se second
int main()
{
ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);
int n;
cin>>n;
vector<ll> a(n+2);
vector<int> p(n+1);
ll sum=0;
for(int i=1;i<=n;i++){
int t,z;
cin>>t>>z;
a[i]=z;
sum+=t;
}
for(int i=1;i<=n;i++) p[i]=i;
sort(p.begin()+1,p.end(),[&](int &i,int &j){
return a[i]<a[j];
});
vector<ll> ans(n+2);
int j=n;
for(int i=n;i>=1;i--){
if(sum<=0) break;
a[p[i]]=min(a[p[i]],sum);
ans[p[i]]=a[p[i]];
sum-=a[p[i]];
//cout<<p[i]<<' '<<a[p[i]]<<'\n';
j=i-1;
}
for(int i=1;i<=j;i++){
ans[p[i]]=0;
}
cout<<j<<'\n';
for(int i=1;i<=n;i++) cout<<ans[i]<<' ';
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |