Submission #1234619

#TimeUsernameProblemLanguageResultExecution timeMemory
1234619gry3125Mutating DNA (IOI21_dna)C++20
22 / 100
1592 ms3912 KiB
#include "dna.h"
#include <bits/stdc++.h>
#define ll long long int

using namespace std;
string a, b; int n;
vector<ll> as, bs;
// A = 0, T = 1

void init(string aa, string bb) {
	a = aa; b = bb; n = a.size(); 
	as.resize(n); bs.resize(n); 
	if (a[0] == 'T') as[0]++;
	if (b[0] == 'T') bs[0]++;
	for (int i = 1; i < n; i++) {
		as[i] = as[i-1];
		bs[i] = bs[i-1];
		if (a[i] == 'T') as[i]++;
		if (b[i] == 'T') bs[i]++;
	}
}

int get_distance(int x, int y) {
	ll suma = as[y], sumb = bs[y];
	if (x > 0) {
		suma -= as[x-1]; sumb -= bs[x-1];
	}
	if (suma != sumb) return -1;
	int cnt = 0;
	for (int i = x; i <= y; i++) {
		if (a[i] != b[i]) cnt++;
	}
	return cnt/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...