제출 #1194080

#제출 시각아이디문제언어결과실행 시간메모리
1194080PetrixMutating DNA (IOI21_dna)C++20
0 / 100
21 ms5632 KiB
#include <iostream>
using namespace std;

int sp[100001][3][3];

void init(string a, string b){
    char aux[]={'A','C','T'};
    int i,j,k;
    for(i=0;i<a.size();i++){
        for(j=0;j<3;j++){
            for(k=0;k<3;k++){
                sp[i+1][j][k]=sp[i-1][j][k];
                if(a[i-1]==aux[j] && b[i-1]==aux[k]) sp[i+1][j][k]++;
            }
        }
    }
}

int get_distance(int x,int y){
    int perechi=0,triplete=0,i,j,sum1,sum2;
    for(i=0;i<3;i++){
        j=(i+1)%3;
        sum1=sp[y+1][i][j]-sp[x][i][j];sum2=sp[y+1][j][i]-sp[x][j][i];
        if(!i) triplete=sum1-sum2;
        else if(sum1-sum2!=triplete) return -1;
        perechi+=min(sum1,sum2);
    }
    return perechi+abs(triplete)*2;
}
#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...