Submission #1154290

#TimeUsernameProblemLanguageResultExecution timeMemory
1154290curious_tigerMutating DNA (IOI21_dna)C++20
0 / 100
21 ms7308 KiB
#include "dna.h" #include<bits/stdc++.h> using namespace std; string given, target; vector<pair<long long, long long>> count_a (100001, {0, 0}), count_t (100001, {0, 0}), count_c (100001, {0, 0}); void init(string a, string b) { given = a; target = b; for (int i=0; i<a.size(); i++) { if (a[i]=='A') count_a[i+1].first+=1; else if (a[i]=='T') count_t[i+1].first+=1; else count_c[i+1].first+=1; if (b[i]=='A') count_a[i+1].second+=1; else if (b[i]=='T') count_t[i+1].second+=1; else count_c[i+1].second+=1; } } int get_distance(int x, int y) { if (((count_a[y+1].first-count_a[x].first)==(count_a[y+1].second-count_a[x].second)) && ((count_t[y+1].first-count_t[x].first)==(count_t[y+1].second-count_t[x].second)) && ((count_c[y+1].first-count_c[x].first)==(count_c[y+1].second-count_c[x].second))) { if (y-x<=2) { int prob=0; for (int i=x; i<=y; i++) { if (given[i]!=target[i]) prob++; } if (!prob) return 0; else return prob-1; } } else { return -1; } return 0; }
#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...