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>
using namespace std;
#include "dna.h"
string A, B;
void init(string a, string b) {
A = a;
B = b;
}
int get_distance(int x, int y) {
string a = A.substr(x, (y-x+1));
string b = B.substr(x, (y-x+1));
if (a == b) {
return 0;
}
string fa = "", fb = "";
int a_a = 0, a_c = 0, a_t = 0;
int b_a = 0, b_c = 0, b_t = 0;
for(int i=0;i<a.size();i++) {
if (a[i] != b[i]) {
fa += a.substr(i, 1);
fb += b.substr(i, 1);
if (a[i] == 'A') {
a_a++;
} else if (a[i] == 'C') {
a_c++;
} else {
a_t++;
}
if (b[i] == 'A') {
b_a++;
} else if (b[i] == 'C') {
b_c++;
} else {
b_t++;
}
}
}
if (a_a != b_a || a_c != b_c || a_t != b_t) {
return -1;
}
a = fa;
b = fb;
int n = a.size();
if (a == b) {
return 0;
}
if (n == 1) {
return -1;
}
if (n == 2 || n == 3) {
return n - 1;
}
return (n / 2) + (n % 2);
}
Compilation message (stderr)
dna.cpp: In function 'int get_distance(int, int)':
dna.cpp:26:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
26 | for(int i=0;i<a.size();i++) {
| ~^~~~~~~~~
# | 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... |