Submission #1166849

#TimeUsernameProblemLanguageResultExecution timeMemory
1166849ChocoMutating DNA (IOI21_dna)C++20
0 / 100
31 ms13888 KiB
#include "dna.h" #include <bits/stdc++.h> using namespace std; #define ll long long #define fori(x,y,z) for(ll x=y;x<=z;x++) vector<vector<ll>>cnt,cnt1; vector<ll>diff; void init(string a, string b) { ll n=a.size(); cnt.resize(n+10); cnt1.resize(n+10); diff.assign(n+10,0); fori(i,0,n){ cnt[i].resize(3,0); cnt1[i].resize(3,0); } fori(i,0,n-1){ fori(j,0,2){ cnt[i+1][j]=cnt[i][j]; cnt1[i+1][j]=cnt[i][j]; } diff[i+1]=diff[i]; if(a[i]=='A') cnt[i+1][0]++; else if(a[i]=='C') cnt[i+1][1]++; else cnt[i+1][2]++; if(b[i]=='A') cnt1[i+1][0]++; else if(b[i]=='C') cnt1[i+1][1]++; else cnt1[i+1][2]++; if(a[i]!=b[i]) diff[i+1]++; } } int get_distance(int x, int y) { x++; y++; bool okay=1; fori(i,0,2){ if(cnt[y][i]-cnt[x-1][i]!=cnt1[y][i]-cnt1[x-1][i]) okay=0; } if(okay==0) return -1; return diff[y]-diff[x-1]-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...