제출 #1219998

#제출 시각아이디문제언어결과실행 시간메모리
1219998moondarksideDNA 돌연변이 (IOI21_dna)C++20
100 / 100
26 ms5544 KiB
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
std::vector<vector<int>> ArrMist(6);

vector<pair<char,char>> Errors={{'A','T'},{'T','A'},
                                {'C','A'},{'A','C'},
                                {'T','C'},{'C','T'}};

void init(string a, string b){
    for(int i=0;i<6;i++){
        ArrMist[i].push_back(0);
    }
    
    for(int i=0;i<a.size();i++){
        int val=0;
        for(int j=0;j<6;j++){
            int val=0;
            if(Errors[j].first==a[i] && Errors[j].second==b[i]){
                val=1;
            }
            ArrMist[j].push_back(ArrMist[j][i]+val);
        }
    }
}

int get_distance(int x, int y){
    y++;
    int steps=0;
    steps+=min(ArrMist[0][y]-ArrMist[0][x],ArrMist[1][y]-ArrMist[1][x]);
    int da=ArrMist[0][y]-ArrMist[0][x]-(ArrMist[1][y]-ArrMist[1][x]);
    
    steps+=min(ArrMist[2][y]-ArrMist[2][x],ArrMist[3][y]-ArrMist[3][x]);
    int db=ArrMist[2][y]-ArrMist[2][x]-(ArrMist[3][y]-ArrMist[3][x]);
    
    steps+=min(ArrMist[4][y]-ArrMist[4][x],ArrMist[5][y]-ArrMist[5][x]);
    int dc=ArrMist[4][y]-ArrMist[4][x]-(ArrMist[5][y]-ArrMist[5][x]);
    
    if(da==db && db == dc){
        steps+=abs(da)*2;
        return steps;
    }
    return -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...