This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#include "dna.h"
using namespace std;
typedef long long ll;
int n, ac[100000], at[100000], ct[100000];
void init(string A, string B)
{
n = A.size();
for (int i = 0; i < n; i++)
{
ac[i + 1] = ac[i], at[i + 1] = at[i], ct[i + 1] = ct[i];
ac[i + 1] += ((A[i] == 'A' && B[i] == 'C') || (A[i] == 'C' && B[i] == 'A'));
at[i + 1] += ((A[i] == 'C' && B[i] == 'T') || (A[i] == 'T' && B[i] == 'C'));
ct[i + 1] += ((A[i] == 'C' && B[i] == 'T') || (A[i] == 'C' && B[i] == 'T'));
ac[i + 1] += ((A[i] == 'T' && B[i] != 'T') || (A[i] != 'T' && B[i] == 'T'));
at[i + 1] += ((A[i] == 'C' && B[i] != 'C') || (A[i] != 'C' && B[i] == 'C'));
ct[i + 1] += ((A[i] == 'A' && B[i] != 'A') || (A[i] != 'A' && B[i] == 'A'));
}
}
int get_distance(int x, int y)
{
return min({ac[y + 1] - ac[x], at[y + 1] - at[x], ct[y + 1] - ct[y]});
}
| # | 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... |