Submission #1219997

#TimeUsernameProblemLanguageResultExecution timeMemory
1219997moondarksideDNA 돌연변이 (IOI21_dna)C++20
50 / 100
1591 ms6828 KiB
#include <iostream> #include<bits/stdc++.h> using namespace std; std::vector<vector<int>> ArrMist(6); vector<pair<char,char>> Errors={{'A','T'},{'T','A'}, {'C','A'},{'A','C'}, {'T','C'},{'C','T'}}; void init(string a, string b){ for(int i=0;i<6;i++){ ArrMist[i].push_back(0); } for(int i=0;i<a.size();i++){ int val=0; for(int j=0;j<6;j++){ int val=0; if(Errors[j].first==a[i] && Errors[j].second==b[i]){ val=1; } ArrMist[j].push_back(ArrMist[j][i]+val); } } } int get_distance(int x, int y){ auto t=ArrMist; y++; int steps=0; steps+=min(ArrMist[0][y]-ArrMist[0][x],ArrMist[1][y]-ArrMist[1][x]); int da=ArrMist[0][y]-ArrMist[0][x]-(ArrMist[1][y]-ArrMist[1][x]); steps+=min(ArrMist[2][y]-ArrMist[2][x],ArrMist[3][y]-ArrMist[3][x]); int db=ArrMist[2][y]-ArrMist[2][x]-(ArrMist[3][y]-ArrMist[3][x]); steps+=min(ArrMist[4][y]-ArrMist[4][x],ArrMist[5][y]-ArrMist[5][x]); int dc=ArrMist[4][y]-ArrMist[4][x]-(ArrMist[5][y]-ArrMist[5][x]); if(da==db && db == dc){ steps+=abs(da)*2; return steps; } 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...