이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "dna.h"
#include "bits/stdc++.h"
using namespace std;
int a[100005][3], b[100005][3], dif[100005];
void init(string A, string B)
{
for(int i=0; i<(int)A.length(); i++)
{
if(A[i]!=B[i]) dif[i+1]=1;
dif[i+1]+=dif[i];
if(A[i]=='C') a[i+1][1]=1;
else if(A[i]=='T') a[i+1][2]=1;
else a[i+1][0]=1;
if(B[i]=='C') b[i+1][1]=1;
else if(B[i]=='T') b[i+1][2]=1;
else b[i+1][0]=1;
a[i+1][0]+=a[i][0];
a[i+1][1]+=a[i][1];
a[i+1][2]+=a[i][2];
b[i+1][0]+=b[i][0];
b[i+1][1]+=b[i][1];
b[i+1][2]+=b[i][2];
}
}
int get_distance(int x, int y)
{
int diff=dif[y+1]-dif[x];
int cnt1[3]={a[y+1][0]-a[x][0], a[y+1][1]-a[x][1], a[y+1][2]-a[x][2]};
int cnt2[3]={b[y+1][0]-b[x][0], b[y+1][1]-b[x][1], b[y+1][2]-b[x][2]};
if(cnt1[0]!=cnt2[0] or cnt1[1]!=cnt2[1] or cnt1[2]!=cnt2[2]) return -1;
return diff/2;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |