QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#856806#9079. Hamming DistanceNana7#AC ✓2ms3968kbC++141.1kb2025-01-14 16:57:452025-01-14 16:57:47

Judging History

This is the latest submission verdict.

  • [2025-01-14 16:57:47]
  • Judged
  • Verdict: AC
  • Time: 2ms
  • Memory: 3968kb
  • [2025-01-14 16:57:45]
  • Submitted

answer

#include<iostream>
#include<cstdio>
#include<cstring>
#define I inline
using namespace std;

const int N = 10010;
char a[N],b[N],ans[N];
int mn[N];
int n,d[N];

I int ab(int x) {
	if(x<0) return -x;
	return x; 
}
I void solve(int T) {
	scanf("%s",a+1);
	scanf("%s",b+1);
	n=strlen(a+1);
	for(int i=1;i<=n;++i) {
		for(int j=1;j<=26;++j) {
			if(j+'a'-1!=a[i]&&j+'a'-1!=b[i]) {
				mn[i]=j;
				break;
			}
		} 
	} 
	for(int i=1;i<=n+1;++i) d[i]=0;
	for(int i=n;i>=1;--i) {
		if(a[i]!=b[i]) d[i]++;
		d[i]+=d[i+1];
	}
	int s1=0,s2=0,cv1=0,cv2=0;
	for(int i=1;i<=n;++i) {
		if(a[i]==b[i]) {
			ans[i]='a';
			continue;
		}
		int ns1=s1,ns2=s2,mk=26;
		
		if(ab(s2+1-s1)<=d[i+1]) {
			mk=min(mk,a[i]-'a'+1);
		} 
		if(ab(s1+1-s2)<=d[i+1]) {
			mk=min(mk,b[i]-'a'+1);
		}
		if(ab(s1-s2)<=d[i+1]) {
			mk=min(mk,mn[i]);
		}
		ans[i]=mk+'a'-1;
		if(mk==a[i]-'a'+1) {
			s2++;
		} else if(mk==b[i]-'a'+1) {
			s1++;
		}
	}
	cout<<"Case "<<T<<": ";
	for(int i=1;i<=n;++i) cout<<ans[i]; cout<<endl;
} 
int main()
{
	int T; cin>>T;
	for(int i=1;i<=T;++i) solve(i);
}

这程序好像有点Bug,我给组数据试试?

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

2
abc
acd
abandon
newyork

output:

Case 1: aaa
Case 2: aaaaark

result:

ok 6 tokens

Test #2:

score: 0
Accepted
time: 0ms
memory: 3840kb

input:

3
abcbacjasiodjadosasadasdada
abcbacjasiodjadosasadasdada
aba
abb
bbbbbbaaaaa
aaaaaabbbbb

output:

Case 1: aaaaaaaaaaaaaaaaaaaaaaaaaaa
Case 2: aac
Case 3: aaaaabaaaac

result:

ok 9 tokens

Test #3:

score: 0
Accepted
time: 1ms
memory: 3840kb

input:

1
aab
bba

output:

Case 1: abc

result:

ok 3 tokens

Test #4:

score: 0
Accepted
time: 1ms
memory: 3840kb

input:

1
aaaea
ccbdc

output:

Case 1: aabac

result:

ok 3 tokens

Test #5:

score: 0
Accepted
time: 2ms
memory: 3968kb

input:

100
y
m
tbqyaxbi
pqdqdayk
vdgccwsfo
wjgrckffn
hhka
bwqz
zcleuatejof
txpvaqmidwg
wbbl
fcuj
rfgjo
wfluk
ivimfoedco
lstisjtzfv
bhllf
puyfh
swuyfbufmz
swuyfbufmz
wvocvzngafbvnkfkbrcut
ldoxqnikmdtodzzzzmchs
lsfjwmjhszqiqhmwcrsaftrzvebgwhydynoiotqhqkrqhgxxuf
crvapaebmmxljfiiuoiiomnxhwwxgpulltbdwflgxgpezgc...

output:

Case 1: a
Case 2: aaaaaaaa
Case 3: aaaaaaaaa
Case 4: aaab
Case 5: aaaaaaaaaaa
Case 6: aaaa
Case 7: aaaaa
Case 8: aaaaaaaaaa
Case 9: aaaaa
Case 10: aaaaaaaaaa
Case 11: aaaaaaaaaaaaaaaaaaaas
Case 12: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaua
Case 13: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxj
...

result:

ok 300 tokens

Extra Test:

score: 0
Extra Test Passed