记录编号 266382 评测结果 AAAAAAAAA
题目名称 [USACO 2.4.5]分数化小数 最终得分 100
用户昵称 Gravatar再见 是否通过 通过
代码语言 C++ 运行时间 0.008 s
提交时间 2016-06-06 23:31:25 内存使用 3.73 MiB
显示代码纯文本
#include<cstdio>
#include<cstdlib>

char phash[2000000];
int n,m,k,len,ll,hash[200010],out[200010];

int main()
{
	freopen("fracdec.in","r",stdin);
	freopen("fracdec.out","w",stdout);
	scanf("%d%d",&n,&m);
	out[++len]=k=n/m;
	out[++len]='.';
	n-=k*m;
	while(true){
		hash[len]=n;
		phash[n]=true;
		if(!n){ n=-1; break;}
		n*=10;
		out[++len]=k=n/m;
		n-=k*m;
		if(phash[n]) break;
	}
	for(int i=1;i<=len;i++){
		if(out[i]=='.') putchar('.'),ll++;
		if(out[i]!='.'){
			printf("%d",out[i]),ll++;
			if(!(ll%76)) putchar('\n');
		}
		if(hash[i]==n){
			printf("("),ll++;
			if(!(ll%76)) putchar('\n');
		}
	}
	if(n!=-1) printf(")");
	else if(len==2) printf("0");
	return 0;
}