| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
测试了很多数据,为什么还是WA啊?帮个忙吧#include <iostream>
using namespace std;
bool fill(long int *good)
{
int limit[6];
limit[0]=36;
limit[1]=9;
limit[2]=4;
limit[3]=1;
limit[4]=1;
if(good[4]){
--good[4];
limit[0]=11;
limit[1]=0;
limit[2]=0;
limit[3]=0;
}
if(good[3]&&limit[3])
{
--good[3];
limit[0]=20;
limit[1]=5;
limit[2]=0;
}
if(good[2]&&limit[2])
{
if(good[2]<limit[2]){
if(good[2]==1)limit[1]=5;
if(good[2]==2)limit[1]=3;
if(good[2]==3)limit[1]=1;
limit[0]=36-good[2]*9;
good[2]=0;
}
else {
good[2]-=limit[2];
limit[1]=0;
limit[0]=0;
}
}
if(good[1]&&limit[1])
{
if(limit[1]==5&&limit[2]==0){
if(good[1]<limit[1]){
limit[0]=20-4*good[1];
good[1]=0;
}
else{
limit[0]=0;
good[1]-=limit[1];
}
}
else {
if(good[1]<limit[1]){limit[0]=limit[0]-good[1]*4;good[1]=0;}
else {
if(limit[1]==5)limit[0]=7;
if(limit[1]==3)limit[0]=6;
if(limit[1]==1)limit[0]=5;
good[1]-=limit[1];
}
}
}
if(good[0]&&limit[0])
{
if(good[0]<limit[0]){good[0]=0;}
else {good[0]-=limit[0];}
}
if(good[0]||good[1]||good[2]||good[3]||good[4]||good[5])return false;
else return true;
}
int main(void)
{
do{
long int good[6];
long int flag=0;
for(int i=0;i<6;i++){
cin>>good[i];
if(good[i]!=0)flag=1;
}
if(flag==0)break;
long int temp=0;
temp+=good[5];
good[5]=0;
if(!(good[0]||good[1]||good[2]||good[3]||good[4]||good[5])){
cout<<temp<<endl;
continue;
}
long index=0;
do{
index++;
if(fill(good))break;
}while(1);
cout<<index+temp<<endl;
}while(1);
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator