Submission #1142161

#TimeUsernameProblemLanguageResultExecution timeMemory
1142161redacodeMutating DNA (IOI21_dna)C++20
0 / 100
17 ms2880 KiB
#include<bits/stdc++.h>
using namespace std;

vector<int> V(1e5,-1);
string ax,bx;
void init(std::string a, std::string b) {
	ax=a,bx=b;
	int cnt =0;
  int freq1[3]={0,0,0};
  int freq2[3]={0,0,0};
  for(int i=0;i<a.size();i++){
      if(a[i]=='A')freq1[0]++;
      if(a[i]=='B')freq1[1]++;
      if(a[i]=='C')freq1[2]++;
      if(b[i]=='A')freq2[0]++;
      if(b[i]=='B')freq2[1]++;
      if(b[i]=='C')freq2[2]++;
      if(a[i]!=b[i]){
          cnt++;
          //cout << "jdjd";
      } 
      if(freq1[0]!=freq2[0] or freq1[1]!=freq2[1] or freq1[2]!=freq2[2]){
          V[i]=-1;
      }else{
          if(cnt ==0) V[i]=0;
          else if(cnt %2==0)V[i]=(cnt/2);
          else if(cnt %2==1)V[i]=(cnt/2)+1;
      }
      //cout << i << " " << V[i] << " " << b[i] << " " << a[i] << endl;
      
  }
}

int get_distance(int x, int y) {
	if(V[x-1]==-1 or V[y]==-1) return -1;
	else return (V[y]-V[x-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...