Submission #1316845

#TimeUsernameProblemLanguageResultExecution timeMemory
1316845yusifmMutating DNA (IOI21_dna)C++20
35 / 100
19 ms3808 KiB
//#pragma GCC optimize("O3")
#include <bits/stdc++.h>
#include "dna.h"
using namespace std;
vector<int>prefs1,prefs2,prefs3;
void init(string s1,string s2)
{
	prefs1.resize(s1.size()+1),prefs2.resize(s2.size()+1),prefs3.resize(s1.size()+1);
	for(int i=0;i<s1.size();i++)
	{
		if(s1[i]=='A')
		{
			prefs1[i+1]=prefs1[i]+1;
		}
		else
		{
			prefs1[i+1]=prefs1[i];
		}
	}
	for(int i=0;i<s2.size();i++)
	{
		if(s2[i]=='A')
		{
			prefs2[i+1]=prefs2[i]+1;
		}
		else
		{
			prefs2[i+1]=prefs2[i];
		}
	}
	for(int i=0;i<s1.size();i++)
	{
		if(s1[i]!=s2[i])
		{
			prefs3[i+1]=prefs3[i]+1;
		}
		else
		{
			prefs3[i+1]=prefs3[i];
		}
	}
}
int get_distance(int n,int m)
{
	int cnt1=prefs1[m+1]-prefs1[n],cnt2=prefs2[m+1]-prefs2[n],cnt3=prefs3[m+1]-prefs3[n];
	if(cnt1==cnt2)
	{
		return cnt3/2;
	}
	else
	{
		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...