Submission #1145505

#TimeUsernameProblemLanguageResultExecution timeMemory
1145505LeonidCukMutating DNA (IOI21_dna)C++20
56 / 100
21 ms5380 KiB
#include <bits/stdc++.h> using namespace std; int pref[100001]={0}; int pf[100001][2][3]; void init(string a, string b) { int n=a.size(); map<char,int>m={{'A',0},{'C',1},{'T',2}}; for(int j=0;j<2;j++) { for(int z=0;z<3;z++)pf[0][j][z]=0; } for(int i=1;i<=n;i++) { for(int j=0;j<2;j++) { for(int z=0;z<3;z++)pf[i][j][z]=pf[i-1][j][z]; } pref[i]=pref[i-1]; if(a[i-1]!=b[i-1]) { pref[i]++; } pf[i][0][m[a[i-1]]]++; pf[i][1][m[b[i-1]]]++; } } int get_distance(int x, int y) { bool check=true; for(int j=0;j<3;j++) { if(pf[y+1][1][j]-pf[x][1][j]!=pf[y+1][0][j]-pf[x][0][j])return -1; } return (pref[y+1]-pref[x])%2+(pref[y+1]-pref[x])/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...