Submission #459914

#TimeUsernameProblemLanguageResultExecution timeMemory
459914aris12345678Mutating DNA (IOI21_dna)C++17
43 / 100
1582 ms3924 KiB
#include "dna.h"
#include <bits/stdc++.h>
using namespace std;

const int mxN = 100005;
string s, t;

void init(string a, string b) {
	s = a, t = b;
}

int not_fixed(string a, string b) {
	int ans = 0;
	for(int i = 0; i < int(a.length()); i++) {
		if(a[i] != b[i])
			ans++;
	}
	return ans;
}

int ceil(int a, int b) {
	return a%b == 0 ? a/b : a/b+1;
}

int get_distance(int x, int y) {
	string a = s.substr(x, y-x+1), b = t.substr(x, y-x+1);
	string a1 = s.substr(x, y-x+1), b1 = t.substr(x, y-x+1);
	sort(a1.begin(), a1.end());
	sort(b1.begin(), b1.end());
	if(a1 != b1)
		return -1;
	if(x == y) {
		if(a == b)
			return 0;
		return -1;
	} else if(x+1 == y) {
		if(a == b)
			return 0;
		swap(a[0], a[1]);
		if(a == b)
			return 1;
		return -1;
	} else {
		if(a == b)
			return 0;
		return ceil(not_fixed(a, b), 2);
	}
	assert(true);
}
#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...