Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

谁来看看啊!!!

Posted by wanglaoji at 2009-08-19 16:49:40 and last updated at 2009-08-19 16:54:27
1011题,实在郁闷啊

错在哪儿了--

#include <iostream>
using namespace std;
int b[100]={0},c[100]={0},he=0,su=0;
int tryb(int i)
{
	for(int j=i;j>=1;--j)
		if(b[j]>0)return j;
	return 0;
}
int trya(int i)
{
	int j=tryb(i);
	if(j==0)return 0;
	if(he+j==su){--b[j];return 1;}
	if(he+j<su)
	{
		he+=j;--b[j];
		if(trya(j))return 1;
		he-=j;++b[j];
	}
	if(trya(j-1))return 1;
	return 0;
}
int main()
{
	int n=0,i=0,k=1,l=0,a[100],sum=0;
	while(scanf("%d",&n))
	{	
		if(n==0)return 0;
		for(i=1;i<=n;++i)
		{
			scanf("%d",&a[i]);
			if(a[i]>l)l=a[i];
			++b[a[i]];
			++c[a[i]];
			sum+=a[i];
		}
		for(su=l;su<=sum;++su)
			if(sum%su==0)
			{
				for(k=1;k<sum/su;++k)
				{
					he=tryb(l);--b[he];
					if(he==su)continue;
					if(!trya(he))break;
				}
				if(k==sum/su)
				{
					printf("%d\n",su);
					break;
				}
				for(k=0;k<=99;++k)
					b[k]=c[k];
			}
		for(i=0;i<=99;++i)
		{
			b[i]=0;
			c[i]=0;
		}
		l=0;
		sum=0;
	}
	return 0;
}

大侠们,指点指点!!

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator