Submission #1141947

#TimeUsernameProblemLanguageResultExecution timeMemory
1141947programming23Mutating DNA (IOI21_dna)C++20
0 / 100
100 ms3368 KiB
#include "dna.h"
#include "bits/stdc++.h"
using namespace std;

string sA="";
string sB="";
map<string, int> answers;

void init(string a, string b) {
	sA = a;
	sB = b;
}

int get_distance(int x, int y) {
	map<char, int> countsB;
	map<char, int> countsA;
	int count = 0;
	for(int i=x; i <= y; i++){
		if(countsA.find(sA[i]) == countsA.end()){
			countsA[sA[i]] = 1;
		}else{
			countsA[sA[i]] +=1;
		}
		if(countsB.find(sB[i]) == countsB.end()){
			countsB[sB[i]] = 1;
		}else{
			countsB[sB[i]] +=1;
		}
	}
    cout << "Size :" << countsA.size() << ends << countsB.size() << endl;
	if(countsA.size() != countsB.size()){
		return -1;
	}for(auto c: countsA){
		if(countsA[c.first] != countsB[c.first]){
			return -1;
		}
	}
	int i=x;
	while (i <= y && sA != sB){
		char c = sA[i];
		if(c == sB[i]){
			i++;
			continue;
		}
		for(int z=i+1; z <= y; z++){
			if(sA[z] != sB[i] || sA[z] == sB[z]){
				continue;
			}
			sA[i] = sA[z];
			sA[z] = c;
			count++;
		}
	}
	return count;
}
#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...