记录编号 345042 评测结果 AAAAAAAAAA
题目名称 百事世界杯之旅 最终得分 100
用户昵称 GravatarZwoi_只会打表抄代码的蒟蒻 是否通过 通过
代码语言 C 运行时间 0.014 s
提交时间 2016-11-10 18:55:58 内存使用 0.26 MiB
显示代码纯文本
#include <stdio.h>
int i,n;
long long a[35],num,sum,q,p,d,e,b[35],c[35],o,t;
int euclid(long long a,long long b)
{
	if(!b)
		return  a;
	else return euclid(b,a%b);
}
int main()
{
	freopen("pepsi.in","r",stdin);
	freopen("pepsi.out","w",stdout);
	scanf("%d",&n);
	c[0]=1;
	for(i=1;i<=n;i++)
	{
		a[i]=a[i-1]+n/i;
		if(n%i)
		{
		    b[i]=b[i-1]*i+(n%i)*c[i-1];
		    c[i]=c[i-1]*i;
		    if(b[i]&&c[i])
				e=euclid(b[i],c[i]);
		    else e=1;
		    b[i]/=e;
		    c[i]/=e;
		}
		else
		{
			b[i]=b[i-1];
			c[i]=c[i-1];
		}
		if(b[i]>c[i])
		{
			t=b[i];
			a[i]+=t/c[i];
			b[i]=t%c[i];
		}
	}
	o=a[n];//zhengshu
	p=c[n];//fenmu
	q=b[n];//fenzi
	if(p==1)
		printf("%lld",a[n]);
	else
	{
		i=0;
		while(o%10||o/10)
		{
			i++;
			o=o/10;
			printf(" ");
		}
		printf("%lld\n",b[n]);
		if(a[n])
			printf("%lld",a[n]);
		while(p%10||p/10)
		{
			printf("-");
			p/=10;
		}
        printf("\n");	
		for(;i>0;i--)
			printf(" ");
		printf("%lld",c[n]);
	}
	/*for(i=1;i<n;i++)
	    num*=i;
    for(i=1;i<=n;i++)
	{
		a[i]=num*n/i;
	    sum+=a[i];
	}
	c=sum;
	d=num;
	e=euclid(c,d);
	sum/=e;
	num/=e;
	q=sum%num;
	c=p=sum/num;
	d=num;
	if(!q)
		printf("%lld",p);
	else
	{
		i=0;
		while(c%10)
		{
			i++;
			c=c/10;
			printf(" ");
		}
		printf("%lld\n",q);
		if(p)
			printf("%lld",p);
		while(d%10!=0||d/10!=0)
		{
			printf("-");
			d/=10;
		}
        printf("\n");	
		for(;i>0;i--)
			printf(" ");
		printf("%lld",num);
	}*/
	return 0;
}