#include <iostream>
#include <cmath>
using namespace std;
void show(int tb[],size_t size)
{
for(size_t i=0;i<size;++i) cout<<(","+!i)<<tb[i];
cout<<endl;
}
void divide(int tb[],size_t size,int ext)
{
show(tb,size);
while(ext>0)
{
double avg=0;
for(size_t i=0;i<size;++i) avg+=tb[i];
avg/=size;
size_t imax=0;
double dif=0,vmax=0;
for(size_t i=0;i<size;++i)
{
double tmp=fabs(avg-tb[i]);
dif+=tmp;
if((!i)||(tmp>vmax))
{
vmax=tmp;
imax=i;
}
}
int chg=(int)round(max(1.0,dif*ext/(size*size)));
ext-=chg;
if(tb[imax]>avg) tb[imax]-=chg; else tb[imax]+=chg;
show(tb,size);
}
}
int main()
{
int tb[]={10,5,3};
divide(tb,sizeof(tb)/sizeof(*tb),7);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIHNob3coaW50IHRiW10sc2l6ZV90IHNpemUpCnsKICAgZm9yKHNpemVfdCBpPTA7aTxzaXplOysraSkgY291dDw8KCIsIishaSk8PHRiW2ldOwogICBjb3V0PDxlbmRsOwp9Cgp2b2lkIGRpdmlkZShpbnQgdGJbXSxzaXplX3Qgc2l6ZSxpbnQgZXh0KQp7CiAgIHNob3codGIsc2l6ZSk7CiAgIHdoaWxlKGV4dD4wKQogICB7CiAgICAgIGRvdWJsZSBhdmc9MDsKICAgICAgZm9yKHNpemVfdCBpPTA7aTxzaXplOysraSkgYXZnKz10YltpXTsKICAgICAgYXZnLz1zaXplOwogICAgICBzaXplX3QgaW1heD0wOwogICAgICBkb3VibGUgZGlmPTAsdm1heD0wOwogICAgICBmb3Ioc2l6ZV90IGk9MDtpPHNpemU7KytpKQogICAgICB7CiAgICAgICAgIGRvdWJsZSB0bXA9ZmFicyhhdmctdGJbaV0pOwogICAgICAgICBkaWYrPXRtcDsKICAgICAgICAgaWYoKCFpKXx8KHRtcD52bWF4KSkKICAgICAgICAgewogICAgICAgICAgICB2bWF4PXRtcDsKICAgICAgICAgICAgaW1heD1pOwogICAgICAgICB9CiAgICAgIH0KICAgICAgaW50IGNoZz0oaW50KXJvdW5kKG1heCgxLjAsZGlmKmV4dC8oc2l6ZSpzaXplKSkpOwogICAgICBleHQtPWNoZzsKICAgICAgaWYodGJbaW1heF0+YXZnKSB0YltpbWF4XS09Y2hnOyBlbHNlIHRiW2ltYXhdKz1jaGc7CiAgICAgIHNob3codGIsc2l6ZSk7CiAgIH0KfQoKaW50IG1haW4oKQp7CiAgIGludCB0YltdPXsxMCw1LDN9OwogICBkaXZpZGUodGIsc2l6ZW9mKHRiKS9zaXplb2YoKnRiKSw3KTsKICAgcmV0dXJuIDA7Cn0=