제출 #1236961

#제출 시각아이디문제언어결과실행 시간메모리
1236961i_love_mritiMutating DNA (IOI21_dna)C++20
43 / 100
1594 ms2376 KiB
#include <bits/stdc++.h> #include "dna.h" using namespace std; const int mxN = 2e5 + 1000; string A, B; void init(string a, string b){ A = a, B = b; } int get_distance(int x, int y){ int a = 0, c = 0, t = 0, good = 0, at = 0, ta = 0, ac = 0, ca = 0, tc = 0, ct = 0; for(int i = x; i <= y; ++i){ a += A[i] == 'A'; a -= B[i] == 'A'; c += A[i] == 'C'; c -= B[i] == 'C'; t += A[i] == 'T'; t -= B[i] == 'T'; if(A[i] == 'A' && B[i] == 'T') ++at; else if(A[i] == 'T' && B[i] == 'A') ++ta; else if(A[i] == 'A' && B[i] == 'C') ++ac; else if(A[i] == 'C' && B[i] == 'A') ++ca; else if(A[i] == 'C' && B[i] == 'T') ++ct; else if(A[i] == 'T' && B[i] == 'C') ++tc; else ++good; } if(a == 0 && c == 0 && t == 0){ if(good == (y - x + 1)) return 0; return min(at, ta) + min(ac, ca) + min(tc, ct) + max(((y - x + 1) - min(at, ta) * 2 - min(ac, ca) * 2 - min(tc, ct) * 2 - good - 1), 0); }else{ return -1; } } /*int main(){ #ifndef ONLINE_JUDGE freopen("inp.in", "r", stdin); freopen("output.out", "w", stdout); #endif ios_base::sync_with_stdio(0); cin.tie(nullptr); cout.tie(nullptr); init("ATACAT", "ACTATA"); cout << get_distance(1, 3) << endl; 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...