#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
int main(){
int a[5]={0,0,0,0,0};
int b[5]={0,2,1,2,6};//上限值
int c[5]={0,0,0,0,0};//用來記錄超過限制的格子(先歸零)
int tmp;
int tmp2;
int tmp3;
int i,j;
for(i=0;i<10;i++){
tmp=rand()%5;
a[tmp]++; //現值
}
for(j=0;j<5;j++){
c[j]=(b[j]-a[j])<0?1:0;
}
for(j=0;j<5;j++){
if(c[j])
{
for(i=0;i<(b[j]-a[j]);i++){ //還要注意分配之後 該格子有沒有滿
do{
tmp3=rand()%5;
if(tmp3 != j && (b[tmp3]-a[tmp3])>0)
{
a[tmp3]++;
c[tmp3]=(b[tmp3]-a[tmp3])<0?1:0;
}
}while ((b[j]-a[j]) <0); //若滿了再分給其他格<---這段不知道該怎麼寫
}
}
}
// 第24行~第30行 有疑問~!!!
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGNzdGRsaWI+CiNpbmNsdWRlPGN0aW1lPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKXsKaW50IGFbNV09ezAsMCwwLDAsMH07CmludCBiWzVdPXswLDIsMSwyLDZ9Oy8v5LiK6ZmQ5YC8CmludCBjWzVdPXswLDAsMCwwLDB9Oy8v55So5L6G6KiY6YyE6LaF6YGO6ZmQ5Yi255qE5qC85a2QKOWFiOatuOmbtikKaW50IHRtcDsKaW50IHRtcDI7CmludCB0bXAzOwppbnQgaSxqOwpmb3IoaT0wO2k8MTA7aSsrKXsKICAgIHRtcD1yYW5kKCklNTsKICAgIGFbdG1wXSsrOyAgICAvL+ePvuWAvAp9CmZvcihqPTA7ajw1O2orKyl7CiAgICBjW2pdPShiW2pdLWFbal0pPDA/MTowOwp9CmZvcihqPTA7ajw1O2orKyl7CiAgICBpZihjW2pdKQogICAgewogICAgICAgZm9yKGk9MDtpPChiW2pdLWFbal0pO2krKyl7ICAvL+mChOimgeazqOaEj+WIhumFjeS5i+W+jCDoqbLmoLzlrZDmnInmspLmnInmu78KICAgICAgIGRvewogICAgICAgICAgICB0bXAzPXJhbmQoKSU1OwogICAgICAgICAgICBpZih0bXAzICE9IGogJiYgKGJbdG1wM10tYVt0bXAzXSk+MCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgYVt0bXAzXSsrOwogICAgICAgICAgICAgICAgY1t0bXAzXT0oYlt0bXAzXS1hW3RtcDNdKTwwPzE6MDsKICAgICAgICAgICAgfQogICAgICAgIH13aGlsZSAoKGJbal0tYVtqXSkgPDApOyAgICAvL+iLpea7v+S6huWGjeWIhue1puWFtuS7luagvDwtLS3pgJnmrrXkuI3nn6XpgZPoqbLmgI7purzlr6sKICAgICAgIH0KICAgIH0KfQovLyDnrKwyNOihjH7nrKwzMOihjCAg5pyJ55aR5ZWPfiEhIQoKcmV0dXJuIDA7Cn0K