Submission #1241353

#TimeUsernameProblemLanguageResultExecution timeMemory
1241353Younis_DwaiMutating DNA (IOI21_dna)C++20
22 / 100
1594 ms4692 KiB
#include "dna.h"
#include<bits/stdc++.h>
#define in insert
#define pb push_back
using namespace std;
const int N=1e5+5;
int n,B[N],C[N],pref[N][2];
void init(std::string a, std::string b){
     n=a.size();
     for(int i=1;i<=n;i++){
            if(a[i-1]=='A') B[i]=1;
            else if(a[i-1]=='T') B[i]=2;
            else B[i]=3;
     }
     for(int i=1;i<=n;i++){
            if(b[i-1]=='A') C[i]=1;
            else if(b[i-1]=='T') C[i]=2;
            else C[i]=3;
     }
     for(int i=1;i<=n;i++){
         //pref[i]=pref[i-1];
         if(B[i]==1 && C[i]==2) pref[i][0]++;
         if(B[i]==2 && C[i]==1) pref[i][1]++;
     }
     return ;
}

int get_distance(int x, int y){
    ++x;++y;
    vector<int> v[2][3];
    int ret=0;
    for(int i=x;i<=y;i++){
        v[0][B[i]].pb(i);
        v[1][C[i]].pb(i);
    }
    if(v[0][1].size()!=v[1][1].size()) return -1;
    for(int i=x;i<=y;i++) ret+=bool(C[i]!=B[i]);
	return ret/2;
}
#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...