Submission #1142678

#TimeUsernameProblemLanguageResultExecution timeMemory
1142678joker2Mutating DNA (IOI21_dna)C++20
0 / 100
1593 ms2976 KiB
#include "dna.h" #include <unordered_set> #include <unordered_map> #include <iostream> #include <vector> #include <cmath> #include <algorithm> #include <string> #include <iomanip> #include <numeric> using namespace std; string as; string ab; vector<int> tc; vector<int> ct; vector<int> ta; vector<int> at; vector<int> ac; vector<int> ca; void init(std::string a, std::string b) { as = a; ab = b; for (size_t i = 0; i < a.length(); i++) { if (as[i] == 'T' && ab[i] == 'C') tc.push_back(i); else if (as[i] == 'C' && ab[i] == 'T') ct.push_back(i); else if (as[i] == 'T' && ab[i] == 'A') ta.push_back(i); else if (as[i] == 'A' && ab[i] == 'T') at.push_back(i); else if (as[i] == 'A' && ab[i] == 'C') ac.push_back(i); else if (as[i] == 'C' && ab[i] == 'A') ca.push_back(i); } } int get_distance(int x, int y) { string p1 = ab.substr(x,y-x+1); string p2 = as.substr(x,y-x+1); sort(p1.begin(),p1.end()); sort(p2.begin(),p2.end()); if (p1 == p2) { int tcn = 0; int ctn = 0; int tanm = 0; int atnm = 0; int acn = 0; int can = 0; for (size_t i = 0; i < tc.size();i++) { if (tc[i] >= x && tc[i] <= y) { tcn++; } } for (size_t i = 0; i < ct.size();i++) { if (ct[i] >= x && ct[i] <= y) { ctn++; } } for (size_t i = 0; i < ta.size();i++) { if (ta[i] >= x && ta[i] <= y) { tanm++; } } for (size_t i = 0; i < at.size();i++) { if (at[i] >= x && at[i] <= y) { atnm++; } } for (size_t i = 0; i < ac.size();i++) { if (ac[i] >= x && ac[i] <= y) { acn++; } } for (size_t i = 0; i < ca.size();i++) { if (ca[i] >= x && ca[i] <= y) { can++; } } int ans = 0; std::cout << tcn << " " << ctn << " " << acn << " " << can << " " << tanm << " " << atnm << std::endl; int tcmk = min(tcn,ctn); tcn -= tcmk; ctn -= tcmk; int tamk = min(tanm,atnm); tanm -= tamk; atnm -= tamk; int camk = min(can,acn); acn -= camk; acn -= camk; ans += (camk+tamk+tcmk); ans += ((tcn+ctn+acn+can+tanm+atnm)/3)*2; return ans; } else { return -1; } }
#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...