제출 #1191669

#제출 시각아이디문제언어결과실행 시간메모리
1191669PetrixDNA 돌연변이 (IOI21_dna)C++20
0 / 100
20 ms2624 KiB
#include <iostream>
#include <string>
#include <map>
#include "dna.h"
using namespace std;

string v1,v2;

void init(string a,string b){
    v1=a;v2=b;
}


int get_distance(int x,int y){
    int cnt=0,i,auxcnt=0;int frv[3]={0,0,0},frv1[3]={0,0,0};

    map<pair<int,int>,int> frvv;

    for(i=x;i<=y;i++){
        if(v1[i]=='T') frv[0]++;
        if(v2[i]=='T') frv1[0]++;

        if(v1[i]=='A') frv[1]++;
        if(v2[i]=='A') frv1[1]++;

        if(v1[i]=='C') frv[2]++;
        if(v2[i]=='C') frv1[2]++;
    }
    if(frv[0]!=frv1[0] || frv[1]!=frv1[1] || frv[2]!=frv1[2]) return -1;
    for(i=x;i<=y;i++){
        if(v1[i]!=v2[i] && !frvv[{v2[i],v1[i]}]){
            cnt++;frvv[{v2[i],v1[i]}]++;
        }else if(v1[i]!=v2[i]){
            cnt--;frvv[{v2[i],v1[i]}]--;auxcnt++;
        }
    }
    return cnt-1+auxcnt;
}
#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...