#include <iostream>
#include <vector>
#include <algorithm>
#include <iomanip>
#include <map>
#include <set>
int n,m,a;
std::vector<int> state;
int main() {
std::ios_base::sync_with_stdio(0);
std::cin.tie(NULL);
std::cin>>n>>m;
state.resize(n,0);
std::vector<int> chci;
for(int i=0;i<n;i++){
std::cin>>a;
//a=i%10;
chci.emplace_back(a);
}
if(n==1){
std::cout<<m<<"\n";
return 0;
}
state[n-2]=m;
int st=0;
std::vector<std::pair<int,int>>pro;
for(int akt_pi=n-3;akt_pi>=0;akt_pi--){
pro.clear();
for(int pi=akt_pi+1;pi<n;pi++)
if(state[pi]!=-1){
pro.emplace_back(-state[pi]-chci[pi],pi);
//std::cout<<-state[pi]-chci[pi]<<std::endl;
}
else
pro.emplace_back(0,pi);
sort(pro.begin(),pro.end(),std::greater<std::pair<int,int>>());
int pula=m;
int glosy=0;
for(int i=0;i<(n-akt_pi-1)/2;i++){
if(-pro[i].first<=pula){
pula+=pro[i].first;
glosy++;
}
}
int i_gl=glosy;
while(glosy<(n-akt_pi-1)/2&&akt_pi>=0){
state[akt_pi]=-1;
glosy++;
akt_pi--;
}
if(akt_pi>=0)
{
for(int i=akt_pi+1;i<n;i++)
state[i]=0;
state[akt_pi]=pula;
for(int i=0;i<i_gl;i++){
state[pro[i].second]=-pro[i].first;
//std::cout<<-pro[i].first<<" "<<-pro[i].second<<std::endl;
}
//for(int i=i_gl;i<pro.size();i++)
// state[pro[i].second]=0;
}
}
for(int i=0;i<n;i++){
std::cout<<state[i]<<" \n"[i==n-1];
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | #include <iostream> #include <vector> #include <algorithm> #include <iomanip> #include <map> #include <set> int n,m,a; std::vector<int> state; int main() { std::ios_base::sync_with_stdio(0); std::cin.tie(NULL); std::cin>>n>>m; state.resize(n,0); std::vector<int> chci; for(int i=0;i<n;i++){ std::cin>>a; //a=i%10; chci.emplace_back(a); } if(n==1){ std::cout<<m<<"\n"; return 0; } state[n-2]=m; int st=0; std::vector<std::pair<int,int>>pro; for(int akt_pi=n-3;akt_pi>=0;akt_pi--){ pro.clear(); for(int pi=akt_pi+1;pi<n;pi++) if(state[pi]!=-1){ pro.emplace_back(-state[pi]-chci[pi],pi); //std::cout<<-state[pi]-chci[pi]<<std::endl; } else pro.emplace_back(0,pi); sort(pro.begin(),pro.end(),std::greater<std::pair<int,int>>()); int pula=m; int glosy=0; for(int i=0;i<(n-akt_pi-1)/2;i++){ if(-pro[i].first<=pula){ pula+=pro[i].first; glosy++; } } int i_gl=glosy; while(glosy<(n-akt_pi-1)/2&&akt_pi>=0){ state[akt_pi]=-1; glosy++; akt_pi--; } if(akt_pi>=0) { for(int i=akt_pi+1;i<n;i++) state[i]=0; state[akt_pi]=pula; for(int i=0;i<i_gl;i++){ state[pro[i].second]=-pro[i].first; //std::cout<<-pro[i].first<<" "<<-pro[i].second<<std::endl; } //for(int i=i_gl;i<pro.size();i++) // state[pro[i].second]=0; } } for(int i=0;i<n;i++){ std::cout<<state[i]<<" \n"[i==n-1]; } } |
English