Submission #981522

#TimeUsernameProblemLanguageResultExecution timeMemory
981522faqinyeagerMutating DNA (IOI21_dna)C++17
0 / 100
25 ms4636 KiB
#include "dna.h" #include <bits/stdc++.h> int n, a_cnt, b_cnt; int asum[100050][3], bsum[100050][3]; void init(std::string a, std::string b){ n = (int)a.size(); for(int i = 0; i < n; i++){ if(a[i] == 'A') asum[i][0] ++; else if(a[i] == 'C') asum[i][1] ++; else asum[i][2]++; if(b[i] == 'A') bsum[i][0] ++; else if(b[i] == 'C') bsum[i][1] ++; else bsum[i][2]++; } for(int i = 1; i < n; i++){ for(int j = 0; j < 3; j++){ asum[i][j] += asum[i - 1][j]; bsum[i][j] += bsum[i - 1][j]; } } } int get_distance(int x, int y){ for(int j = 0; j < 3; j++){ if(asum[y][j] - asum[x - 1][j] != bsum[y][j] - bsum[x - 1][j]){ return -1; } } int ans = 0; for(int i = x; i <= y; i++){ int cnt = 0; for(int j = 0; j < 3; j++){ if(asum[i][j] - asum[i - 1][j] != bsum[i][j] - bsum[i - 1][j]) cnt++; } if(cnt == 2) ans ++; } 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...