Submission #1141962

#TimeUsernameProblemLanguageResultExecution timeMemory
1141962rayankMutating DNA (IOI21_dna)C++20
0 / 100
1595 ms2480 KiB
#include "dna.h"
#include <bits/stdc++.h>
using namespace std;
string A;
string B;
void init(string a, string b) {
	A = a;
	B = b;
}

int find_pos(char c, string s, int start, int end){
	for(int i = start; i <= end; i++){
		if(s[i] == c){
			return i;
		}
	}
	return -1;
}
bool issamee(string a, string b, int start, int end){
	for(int i = start; i <= end; i++){
		if(a[i] != b[i]){
			return false;
		}
	}
	return true;
}

int get_distance(int x, int y) {
	int res = 0;
	string suba = A.substr(x, y);
	string subb = B.substr(x,y);
	string acopy = A;
	sort(suba.begin(), suba.end());
	sort(subb.begin(), subb.end());
	if(suba != subb){
		return -1;
	}
	for(int i=x; i <=y;i++){
		if(acopy[i] == B[i]) continue;
		int pos = find_pos(acopy[i], B, x, y);
		if(pos == -1) return -1;
		swap(acopy[i], acopy[pos]);
		res++;
	}

	if(!issamee(acopy, B, x, y)) return -1;
	return res;
}


#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...