QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#829516#8932. Bingomx26WA 0ms10092kbC++141.8kb2024-12-24 10:36:392024-12-24 10:36:40

Judging History

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

  • [2024-12-24 10:36:40]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:10092kb
  • [2024-12-24 10:36:39]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
char s[2000005];
int a[2000005],b[2000005],bf[2000005],a1[100];
int qy(int n,int m){
	long long sum=0;
	for(int i=n;i;i--) sum=(sum*10+a[i])%m;
	return sum;
}
int cf(int n,int m,int mi){
	for(int i=1;i<=n;i++) b[i]=0;
	for(int i=n,j=m;j;j--,i--) b[i]=a1[j];
	for(int i=1;i<=n;i++){
		b[i]-=a[i];
		if(b[i]<0) b[i]+=10,b[i+1]--;
	}
	long long sum=0;
	for(int i=n;i;i--){
		sum=sum*10+b[i];
		if(sum>=mi) return mi;
	}
	return sum;
}
int jw(int n){
	for(int i=1;i<=n;i++)
		if(a[i]>9){
			a[i+1]+=a[i]/10,a[i]%=10;
			if(i==n) n++;
		}
	return n;
}
bool pd(long long u,int n,int ws,int m){
	long long sum=0;
	for(int i=ws;i;i--) sum=sum*10+a[i];
	for(int i=ws;i<=n;i++){
		if(sum==m) return true;
		sum=(sum+a[i+1]*u)/10;
	}
	return false;
}
int main(){
	int uuu;scanf("%d",&uuu);
	while(uuu--){
		int n,m,nn;
		scanf("%s%d",s+1,&m);n=strlen(s+1);
		int ws=0,xx=m;while(xx) a1[++ws]=xx%10,xx/=10;
		for(int i=1;i<=n;i++) a[i]=s[n-i+1]-'0';
		a[1]++;n=jw(n);
		
		for(int i=1;i<=n;i++) bf[i]=a[i],nn=n;
		
		
		int mi=(m-qy(n,m))%m;
		long long u=1;
		for(int i=1;i<=ws;i++) u*=10;
		
		
		if(pd(u,n,ws,m)) mi=0;
		long long sum=0,h=1;
		for(int i=1;i<=40;i++){
			if(a[i]==0){h*=10;continue;}
			sum=sum+h*(10-a[i]),h*=10;
			if(sum>=mi) break;
			a[i]=10;
			for(int j=i;j<=n;j++){
				if(a[j]>9){
					a[j+1]+=a[j]/10,a[j]%=10;
					if(j==n) n++;
				}
				else break;
			}
			if(pd(u,n,ws,m)){mi=min(mi,(int)sum);break;}
		}
		
		for(int i=1;i<=n;i++) a[i]=0;
		for(int i=1;i<=nn;i++) a[i]=bf[i],bf[i]=0;n=nn;
		a[1]+=mi,n=jw(n);
		
		
		for(int i=n;i;i--) printf("%d",a[i]);
		printf("\n");
		for(int i=1;i<=n+10;i++) a[i]=b[i]=0;
		for(int i=1;i<=ws+10;i++) a1[i]=0;
	}
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 10092kb

input:

6
7 3
12 3
9 10
249 51
1369 37
2 1

output:

9
13
10
255
1370
3

result:

wrong answer 4th lines differ - expected: '251', found: '255'