QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#772335#9555. StrengthChen_jrWA 0ms3900kbC++141.7kb2024-11-22 18:49:382024-11-22 18:49:38

Judging History

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

  • [2024-11-22 18:49:38]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3900kb
  • [2024-11-22 18:49:38]
  • 提交

answer

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

int bx[22], bz[22];
ll f[22][2][3];
void solve(){
	ll x, z;
	scanf("%lld%lld",&x,&z);
	int cntx = 0, cntz = 0;
	while(x)bx[++cntx] = x % 10, x /= 10;
	while(z)bz[++cntz] = z % 10, z /= 10;
	memset(f, 0, sizeof(f));
	memset(bx, 0, sizeof(bx));
	memset(bz, 0, sizeof(bz));
	if(bx[1] == 0){
		for(int i = 0; i <= 4; ++i)++f[1][i > bz[1]][0];
		for(int i = 5; i <= 9; ++i)++f[1][i > bz[1]][1];
	}else f[1][bx[1] > bz[1]][0] = 1;
	cntz = max(cntz, cntx);
	for(int i = 2; i <= cntz; ++i){
		for(int upper = 0; upper <= 1; ++upper){
			for(int j = 0; j <= 9; ++j){
				int s = ((j > bz[i]) || (j == bz[i] && upper));
		
				if(bx[i] == 0){
					f[i][s][0] += (j < 4) * (f[i - 1][upper][0] + f[i - 1][upper][1] + f[i - 1][upper][2]) + (j == 4) * f[i - 1][upper][0];
					f[i][s][1] += (j >= 5) * (f[i - 1][upper][0] + f[i - 1][upper][1] + f[i - 1][upper][2]);
					f[i][s][2] += (j == 4) * (f[i - 1][upper][1] + f[i - 1][upper][2]);
				}else if(bx[i] == 1){
					f[i][s][0] += (j <= 4) * (f[i - 1][upper][1] + f[i - 1][upper][2]) + (j == 1) * f[i - 1][upper][0];
					f[i][s][1] += (j >= 5) * (f[i - 1][upper][1] + f[i - 1][upper][2]);
				}else{
					f[i][s][0] += (j == bx[i]) * (f[i - 1][upper][0] + f[i - 1][upper][2]) + (j == bx[i] - 1) * (f[i - 1][upper][1] + f[i - 1][upper][2]);
				}
			}
		}
		// printf("i = %d %lld %lld %lld %lld %lld %lld\n",i, f[i][0][0], f[i][0][1], f[i][0][2],f[i][1][0], f[i][1][1], f[i][1][2]);
	}
	printf("%lld\n",f[cntz][0][0] + f[cntz][0][1] + f[cntz][0][2]);
}

int main(){
	int T; scanf("%d",&T);
	for(int i = 1; i <= T; ++i)solve();
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

5
0 2147483646
10 100
671232353 1232363
123001006660996 3122507962333010
100019990010301090 44519984489341188

output:

1
1
1
1
1

result:

wrong answer 1st numbers differ - expected: '2147483647', found: '1'