제출 #1142147

#제출 시각아이디문제언어결과실행 시간메모리
1142147mouataz_moiMutating DNA (IOI21_dna)C++20
43 / 100
1594 ms2376 KiB
#include "dna.h"
#include<bits/stdc++.h>
using namespace std;
string a;
string b;

void init(string n, string m) {
    a = n;
    b = m;
}

int get_distance(int x, int y) {
    string a1;
    string b2;
    int t_c = 0;
    int a_c = 0;
    int a_t = 0;
	int ans = 0;
	int c_count = 0;
    int t_count = 0;
    int a_count = 0;
    int t_count2 = 0;
    int a_count2 = 0;
    int c_count2 = 0;
    a1 = a.substr(x,y-x+1);
    b2 = b.substr(x,y-x+1);
    for(int i = 0;i < a1.length();i++){
        if(a1[i] == 'T'){
            t_count++;
        }
        if(a1[i] == 'A'){
            a_count++;
        }
        if(b2[i] == 'T'){
            t_count2++;
        }
        if(b2[i] == 'A'){
            a_count2++;
        }
        if(a1[i] == 'C'){
            c_count++;
        }
        if(b2[i] == 'C'){
            c_count2++;
        }
        if((a1[i] == 'T' && b2[i] == 'C') || (a1[i] == 'C' && b2[i] == 'T')){
            t_c++;
        }
        if((a1[i] == 'T' && b2[i] == 'A') || (a1[i] == 'A' && b2[i] == 'T')){
            a_c++;
        }
        if((a1[i] == 'A' && b2[i] == 'C') || (a1[i] == 'C' && b2[i] == 'A')){
            a_t++;
        }
    }
    if((t_count != t_count2) || (a_count != a_count2) || (c_count != c_count2)){
        return -1;
    }
    else{
        bool w = false;
        bool q = false;
        bool e = false;
        if(a_t % 2 == 0){
            a_t /= 2;
            w = true;
        }
        if(a_c % 2 == 0){
            a_c /= 2;
            q = true;
        }
        if(t_c % 2 == 0){
            t_c /= 2;
            e = true;
        }
        if((w && q) && e){
            return a_c + a_t + t_c;
        }
        return a_c + a_t + t_c - 1;
    }
}
#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...