QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#472003#6407. Classical A+B ProblemUESTC_xxx#WA 0ms3748kbC++141.8kb2024-07-11 13:00:252024-07-11 13:00:26

Judging History

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

  • [2024-07-11 13:00:26]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3748kb
  • [2024-07-11 13:00:25]
  • 提交

answer

#include<iostream>
#include<cstdio>
#include<vector>
#include<cstring>
using namespace std;
const int mod=998244353;
const int maxn=1e5+5;
inline int Jia(int x){return x>=mod?x-mod:x;}
inline int read(){
	char ch=getchar();
	int ty=1,k=0;
	while(ch<'0'||ch>'9'){
		if(ch=='-')ty=-1;
		ch=getchar();
	}
	while(ch<='9'&&ch>='0'){
		k=k*10+ch-'0';
		ch=getchar();
	}
	return ty*k;
}
int n,len,a[4005],b[4005],c[4005];
char s[4005];
bool Check1(){
	for(int i=1;i<len;++i)if(s[i]!=s[i+1])return false;
	return true;
}
bool Check2(){
	int flag=0;
	for(int i=1;i<=len;++i){
		c[i]=0;
		a[i]=s[i]-'0';
		if(a[i]>b[i])flag=1;
		if(a[i]<b[i]&&!flag)return false;
	}
//	for(int i=1;i<=len;++i)cout<<a[i];cout<<'\n';
//	for(int i=1;i<=len;++i)cout<<b[i];cout<<'\n';
	for(int i=len;i>=1;--i){
		if(a[i]<b[i]){
			--a[i-1];
			a[i]+=10;
		}
		c[i]=a[i]-b[i];
	}
//	for(int i=1;i<=len;++i)cout<<c[i];cout<<'\n';
	for(int i=1;i<=len;++i){
		if(c[i]!=0){
			for(int j=i;j<len;++j){
				if(c[j]!=c[j+1])return false;
			}
			if(b[1]!=0)cout<<b[1];
			for(int j=2;j<=len;++j)cout<<b[j];cout<<' ';
			for(int j=i;j<=len;++j)cout<<c[j];cout<<'\n';
			return true;
		}
	}
	return false;
}
void Solve(){
	scanf("%s",s+1);
	len=strlen(s+1);
	if(len==1){
		cout<<s[1]-'0'-1<<' '<<1<<'\n';
		return;
	}
	if(Check1()&&s[1]!='1'){
		for(int i=1;i<=len;++i)cout<<s[i]-'0'-1;cout<<' ';
		for(int i=1;i<=len;++i)cout<<1;cout<<'\n';
		return;
	}
	if(s[1]=='1'){
//		int k=(s[1]-'0')*10+(s[2]-'0');
		b[1]=0;
		for(int i=9;i>=1;--i){
			for(int j=2;j<=len;++j){
				b[j]=i;
			}
			if(Check2())return;
		}
//		cout<<"FASF\n";
		if(Check2())return;
	}
	else {
		for(int j=s[1]-'0';j>=1;--j){
			for(int i=1;i<=len;++i)b[i]=j;
			if(Check2())return;	
		}
	}
}
int main(){
	int T=read();
	while(T--)Solve();
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3684kb

input:

6
2
786
1332
89110
2333333
10000000000000000000000000001

output:

1 1
777 9
999 333
88888 222
2222222 111111
9999999999999999999999999999 2

result:

ok ok (6 test cases)

Test #2:

score: -100
Wrong Answer
time: 0ms
memory: 3748kb

input:

100
854
77777777781111111111111111110
44444450
11111111111111333
2310
5
333333333333333333333343332
888999
10
11113333
335
77779
88888888888888888888889111111111111111111110
55555555555555777777
72222222222222222222221
666
5777
1111555555
444444444544444444443
88888888888891111111111110
673332
97
77...

output:

777 77
77777777777777777777777777777 3333333333333333333
44444444 6
2222 88
4 1
333333333333333333333333333 9999
888888 111
9 1
333 2
77777 2
88888888888888888888888888888888888888888888 222222222222222222222
55555555555555555555 222222
66666666666666666666666 5555555555555555555555
555 111
5555 222...

result:

wrong answer x + y != n (test case 4)