Source Code
Problem: 1014 | User: cug_fish2008 | |
Memory: 204K | Time: 0MS | |
Language: C++ | Result: Accepted |
- Source Code
#include <stdio.h> bool fun(int sum,int w[]); int main() { int c[7],n=1; int sum=0; for(int i=1;i<7;i++){ scanf("%d",&c[i]); c[i]%=30; sum+=c[i]*i;} while(c[1] || c[2] || c[3] || c[4] || c[5] || c[6]){ printf("Collection #%d:/n",n); if(sum%2==0 && fun(sum/2,c)) printf("Can be divided./n/n"); else printf("Can't be divided./n/n"); n++; sum=0; for(int i=1;i<7;i++){ scanf("%d",&c[i]); c[i]%=30; sum+=c[i]*i;} } return 0; } bool fun(int sum,int w[]) { int sm=0; for(int a=0;a<=w[6];a++){ sm+=a*6; if(sm>sum)return false; if(sm==sum)return true; for(int b=0;b<=w[5];b++){ sm+=b*5; if(sm>sum){sm-=b*5;break;} if(sm==sum)return true; for(int c=0;c<=w[4];c++){ sm+=c*4; if(sm>sum){sm-=c*4;break;} if(sm==sum)return true; for(int d=0;d<=w[3];d++){ sm+=d*3; if(sm>sum){sm-=d*3;break;} if(sm==sum)return true; for(int e=0;e<=w[2];e++){ sm+=e*2; if(sm>sum){sm-=e*2;break;} if(sum-sm<=w[1])return true; sm-=e*2; } sm-=d*3; } sm-=c*4; } sm-=b*5; } } return false; }