Submission #630661

#TimeUsernameProblemLanguageResultExecution timeMemory
630661tmncollinsMutating DNA (IOI21_dna)C++17
56 / 100
64 ms10936 KiB
#include "dna.h" #include <stdio.h> #include <vector> #include <string> #include <map> #include <iostream> // g++ grader.cpp dna.cpp -o dna using namespace std; vector<vector<int>> prefix; map<char, int> base; void init(string a, string b) { int size = a.size() + 1; prefix = vector<vector<int>> (size); base['A'] = 0; base['C'] = 1; base['T'] = 2; prefix[0] = {0, 0, 0, 0, 0, 0, 0}; // A, C, T (1), A, C, T (2), diff for (int k = 1; k < size; k++) { int i = k-1; prefix[k] = prefix[k-1]; prefix[k][base[a[i]]]++; prefix[k][base[b[i]]+3]++; if (a[i] != b[i]) prefix[k][6]++; } } int get_distance(int x, int y) { vector<int> a = prefix[x], b = prefix[y+1]; for (int k = 0; k < 7; k++) { b[k] -= a[k]; // cout << b[k] << " "; } // cout << "\n"; for (int k = 0; k < 3; k++) if (b[k] != b[k+3]) return -1; int ans = b[6] / 2; if (b[6] % 2) ans += 1; 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...