QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#856806 | #9079. Hamming Distance | Nana7# | AC ✓ | 2ms | 3968kb | C++14 | 1.1kb | 2025-01-14 16:57:45 | 2025-01-14 16:57:47 |
Judging History
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