Submission #1142117

#TimeUsernameProblemLanguageResultExecution timeMemory
1142117zaki98Mutating DNA (IOI21_dna)C++20
0 / 100
17 ms2368 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 y, int x) {
    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)

dna.cpp: In function 'int get_distance(int, int)':
dna.cpp:45:1: warning: control reaches end of non-void function [-Wreturn-type]
   45 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...