# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1142068 | zaki98 | Mutating DNA (IOI21_dna) | C++20 | 18 ms | 2368 KiB |
#include <bits/stdc++.h>
#include "dna.h"
using namespace std;
string dna_a;
string dna_b;
void init(string a, string b) {
dna_a = a;
dna_b = b;
return;
}
int get_distance(int x, int y) {
if (x - y <= 2) {
if (x - y == 0) {
if (dna_a[x] == dna_b[x]) {return 0;}
else {return -1;}
}
else if (x-y == 1) {
if (dna_a[x] == dna_b[x] && dna_a[y] == dna_b[y]) {return 0;}
else if (dna_a[x] == dna_b[y] && dna_b[x] == dna_a[y]) {return 1;}
else {return -1;}
}
else if (x-y == 2) {
int a = 0;
int t = 0;
int c = 0;
int similar = 0;
for (int i = x; i < x + 3; i++) {
if (dna_a[i] == 'A') {a++;} // i am sorry for mom's spaghetti
if (dna_b[i] == 'A') {a--;}
if (dna_a[i] == 'T') {t++;}
if (dna_b[i] == 'T') {t--;}
if (dna_a[i] == 'C') {c++;}
if (dna_b[i] == 'C') {c--;}
if (dna_a[i] == dna_b[i]) {similar++;}
}
if (a == 0 && t==0 && c==0) {
if (similar == 3 || similar == 2) {return 0;}
else if (similar == 1) {return 1;}
else if (similar == 0) {return 2;}
}
else {return -1;}
}
}
}
Compilation message (stderr)
# | 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... |