Submission #1325448

#TimeUsernameProblemLanguageResultExecution timeMemory
1325448exoworldgdMutating DNA (IOI21_dna)C++20
0 / 100
20 ms4576 KiB
#include"dna.h"
#include<bits/stdc++.h>
#define exoworldgd cin.tie(0)->sync_with_stdio(0),cout.tie(0)
#define ll long long
using namespace std;
int q[100005][6],n;
void init(string a,string b){
    n=a.size();
    for(int i=0,x,y;i<n;i++){
        for(int j=0;j<6;j++)q[i+1][j]=q[i][j];
        x=(a[i]=='A'?0:a[i]=='T'?1:2),y=(b[i]=='A'?0:b[i]=='T'?1:2),q[i+1][x*2+y]++;
    }
}
int get_distance(int x,int y){
    int c[3][3]={},ans=0;
    for(int i=0;i<3;i++)for(int j=0;j<3;j++)c[i][j]=q[y+1][i*2+j]-q[x][i*2+j];
    for(int i=0;i<3;i++)if(c[i][0]+c[i][1]+c[i][2]!=c[0][i]+c[1][i]+c[2][i])return-1;
    for(int i=0;i<3;i++)for(int j=i+1,sw;j<3;j++)sw=min(c[i][j],c[j][i]),ans+=sw,c[i][j]-=sw,c[j][i]-=sw;
    for(int i=0;i<3;i++)ans+=c[i][(i+1)%3]*2;
    return ans;
}
#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...