Submission #437114

#TimeUsernameProblemLanguageResultExecution timeMemory
437114WnRSMutating DNA (IOI21_dna)C++17
100 / 100
70 ms8272 KiB
#include "dna.h" #include <bits/stdc++.h> using namespace std; string s,t; vector<vector<int>>v(100005,vector<int>(6,0)); void gen(void) { v[0]={0,0,0,0,0,0}; for(int i = 0 ; i < s.length() ; i++) { v[i+1]=v[i]; if(s[i] == 'A') { if(t[i] == 'C') v[i+1][0]++; else if(t[i] == 'T') v[i+1][1]++; } else if(s[i] == 'C') { if(t[i] == 'A') v[i+1][2]++; else if(t[i] == 'T') v[i+1][3]++; } else { if(t[i] == 'A') v[i+1][4]++; else if(t[i] == 'C') v[i+1][5]++; } } } int get_distance(int x, int y) { int a=v[y+1][0]-v[x][0], b=v[y+1][1]-v[x][1], c=v[y+1][2]-v[x][2], d=v[y+1][3]-v[x][3], e=v[y+1][4]-v[x][4], f=v[y+1][5]-v[x][5]; int ans=0; int dif=min(a,c); ans+=dif; a-=dif,c-=dif; dif=min(b,e); ans+=dif; b-=dif,e-=dif; dif=min(d,f); ans+=dif; d-=dif,f-=dif; if(a!=d||d!=e||b!=c||c!=f) return -1; ans+=2*((max(a,c)+max(b,e)+max(d,f))/3); return ans; } void init(string aa, string bb) { s=aa,t=bb; gen(); }

Compilation message (stderr)

dna.cpp: In function 'void gen()':
dna.cpp:10:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   10 |     for(int i = 0 ; i < s.length() ; i++) {
      |                     ~~^~~~~~~~~~~~
#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...