记录编号 209082 评测结果 WWTA
题目名称 w函数 最终得分 25
用户昵称 GravatarGaoErFu 是否通过 未通过
代码语言 C++ 运行时间 1.002 s
提交时间 2015-11-21 00:27:56 内存使用 0.29 MiB
显示代码纯文本
#include<stdio.h>
int mi(int a,int b)
{
	int r=1,base;
    base=a;
	while(b!=0)
	{
	if(b&1)
	r=base*r;
	base=base*base;
	b>>=1;
	}
	return r; 
}
int w(int  a,int b,int c)
{
	if(a>20||b>20||c>20)
	return mi(2,20);
	else if(a==b&&b==c&&c==a)
	return mi(2,a);
	else if(a==b&&a<=20&&a>0)
	printf("%d\n",mi(2,a));
	else if(b==c&&b<=20&&b>0)
	printf("%d\n",mi(2,b));
	else if(c==a&&c<=20&&c>0)
	printf("%d\n",mi(2,c));
	else if(a<=0||b<=0||c<=0)return 1;
	else if(a<b&&b<c)return w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c);
	else return w(a-1,b,c)+w(a-1,b-1,c)+w(a-1,b,c-1)-w(a-1,b-1,c-1);
}
int main()
{
	freopen("wwww.in","r",stdin);
	freopen("wwww.out","w",stdout);
	int a,b,c,max=0,min=0;
	while(1)
	{
		scanf("%d%d%d",&a,&b,&c);
		if(a==-1&&b==-1&&c==-1)
		break;
		else printf("%d\n",w(a,b,c));
	}
	return 0;
}