Submission #1175280

#TimeUsernameProblemLanguageResultExecution timeMemory
1175280raspyMutating DNA (IOI21_dna)C++20
100 / 100
21 ms6152 KiB
#include "dna.h" #include <bits/stdc++.h> using namespace std; int mp[250]; int n; int kum[3][3][100005]; const int LIK = 6; void init(string a, string b) { mp['A'] = 0;mp['C'] = 1;mp['T'] =2; n = a.size(); for (int i = 0; i < n; i++) for (int j = 0; j < 3; j++) for (int k = 0; k < 3; k++) kum[j][k][i] = 0; for (int i = 1; i <= n; i++) { int u = mp[a[i-1]], v = mp[b[i-1]]; for (int j = 0; j < 3; j++) for (int k = 0; k < 3; k++) kum[j][k][i] = kum[j][k][i-1] + (j==u&&k==v); } } int tr_dnk[8]; int get_distance(int x, int y) { int rez = 0, ostalo = 0; for (int j = 0; j < 3; j++) { int k = (j+1)%3; int st = kum[j][k][y+1]-kum[j][k][x]; int st1 = kum[k][j][y+1]-kum[k][j][x]; if (j == 0) ostalo = st-st1; else if (st-st1 != ostalo) return -1; rez += min(st, st1); } return rez + abs(ostalo)*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...