记录编号 |
345042 |
评测结果 |
AAAAAAAAAA |
题目名称 |
百事世界杯之旅 |
最终得分 |
100 |
用户昵称 |
Zwoi_只会打表抄代码的蒟蒻 |
是否通过 |
通过 |
代码语言 |
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;
}