QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#860306#9962. Diminishing Fractionsmzmz001#WA 116ms34884kbC++141.3kb2025-01-18 12:13:332025-01-18 12:13:35

Judging History

你现在查看的是最新测评结果

  • [2025-01-18 12:13:35]
  • 评测
  • 测评结果:WA
  • 用时:116ms
  • 内存:34884kb
  • [2025-01-18 12:13:33]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
long long n=5e4,m,k,l,f[1000007],T,a1,b[1000007],js,gs,wi;
int bo[4000007],sh[4000007];
vector<int>ve[1000007];
int am[1007][5207],an[1007][5207],si[1007];
long long inv(long long x,long long y){return x>1?y-inv(y%x,x)*y/x:1;}
double an1;
int main(){
	for(int i=2;i<=n;i++){
		if(!bo[i]){++gs;
			for(int j=i+i;j<=n;j+=i)bo[j]=1;
			for(int j=i;j<=n;j=j*i){
				sh[j]=i;
				if(j>n/i)break;
			}
		}
	}
	cin>>T;
	for(int u=1;u<=T;u++){
		scanf("%lld",&a1);
		ve[a1].push_back(u);
	}
	for(int i=1;i<=n;i++){
		if(sh[i]){
			if(sh[i]>b[js])b[++js]=sh[i];bo[sh[i]]=i;
			f[sh[i]]=1;
			for(int j=1;j<=js;j++){
				if(b[j]!=sh[i]){
					f[b[j]]=f[b[j]]*sh[i]%bo[b[j]];
					f[sh[i]]=f[sh[i]]*bo[b[j]]%i;
				}
			}
		}
		if(ve[i].size()){
			
			for(int j:ve[i]){
				if(i==1){
					si[j]=-1;
					continue;
				}
				si[j]=js;
				for(int o=1;o<=js;o++)am[j][o]=bo[b[o]],an[j][o]=f[b[o]];	
			}
		}
	}
	for(int u=1;u<=T;u++){
		if(si[u]==-1)puts("1/1");
		else{
			an1=0;
			for(int i=1;i<=si[u];i++){
				an[u][i]=inv(an[u][i]%am[u][i],am[u][i]);
				an1+=(double)an[u][i]/am[u][i];
			}
			int s=floor(an1);
			for(int i=1;i<=si[u];i++){
				printf("%d/%d",an[u][i],am[u][i]);
				if(i!=si[u])printf("+");
			}
			for(int i=1;i<=s;i++)printf("-1");
			puts("");
		}
	}
}

详细

Test #1:

score: 0
Wrong Answer
time: 116ms
memory: 34884kb

input:

2
3
6

output:

1/2+2/3-1
3/4+2/3+3/5-1-1

result:

wrong answer Expected '/' in fraction