Submission #1175280

#TimeUsernameProblemLanguageResultExecution timeMemory
1175280raspyMutating DNA (IOI21_dna)C++20
100 / 100
21 ms6152 KiB
#include "dna.h"
#include <bits/stdc++.h>

using namespace std;

int mp[250];
int n;
int kum[3][3][100005];

const int LIK = 6;

void init(string a, string b)
{
	mp['A'] = 0;mp['C'] = 1;mp['T'] =2;
	n = a.size();
	for (int i = 0; i < n; i++)
		for (int j = 0; j < 3; j++)
			for (int k = 0; k < 3; k++)
				kum[j][k][i] = 0;
	for (int i = 1; i <= n; i++)
	{
		int u = mp[a[i-1]], v = mp[b[i-1]];
		for (int j = 0; j < 3; j++)
			for (int k = 0; k < 3; k++)
				kum[j][k][i] = kum[j][k][i-1] + (j==u&&k==v);
	}
}

int tr_dnk[8];

int get_distance(int x, int y)
{
	int rez = 0, ostalo = 0;
	for (int j = 0; j < 3; j++)
	{
		int k = (j+1)%3;
		int st = kum[j][k][y+1]-kum[j][k][x];
		int st1 = kum[k][j][y+1]-kum[k][j][x];
		if (j == 0) ostalo = st-st1;
		else if (st-st1 != ostalo) return -1;
		rez += min(st, st1);
	}
	return rez + abs(ostalo)*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...