Submission #1287464

#TimeUsernameProblemLanguageResultExecution timeMemory
1287464putthi_usDNA 돌연변이 (IOI21_dna)C++20
0 / 100
20 ms5084 KiB
#include "dna.h" #include<bits/stdc++.h> using namespace std; vector<int> Aa,Ta,Ca,Ab,Tb,Cb,same; void init(std::string a, std::string b) { int n=a.length(); Aa.resize(n+1); Ta.resize(n+1); Ca.resize(n+1); Ab.resize(n+1); Tb.resize(n+1); Cb.resize(n+1); same.resize(n+1); Aa[0]=Ta[0]=Ca[0]=Ab[0]=Tb[0]=Cb[0]=same[0]=0; for(int i=0;i<n;i++){ Aa[i+1]=Aa[i]; Ta[i+1]=Ta[i]; Ca[i+1]=Ca[i]; Ab[i+1]=Ab[i]; Tb[i+1]=Tb[i]; Cb[i+1]=Cb[i]; same[i+1]=same[i]; if(a[i]=='A')Aa[i+1]++; else if(a[i]=='T')Ta[i+1]++; else if(a[i]=='C')Ca[i+1]++; if(b[i]=='A')Ab[i+1]++; else if(b[i]=='T')Tb[i+1]++; else if(b[i]=='C')Cb[i+1]++; if(a[i]==b[i]){ same[i+1]++; } } } int get_distance(int x, int y) { if(Aa[y+1]-Aa[x]==Ab[y+1]-Ab[x]&&Ta[y+1]-Ta[x]==Tb[y+1]-Tb[x]&&Ca[y+1]-Ca[x]==Cb[y+1]-Cb[x]){ return y-x-same[y+1]+same[x]; } 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...