Submission #1236906

#TimeUsernameProblemLanguageResultExecution timeMemory
1236906i_love_mritiMutating DNA (IOI21_dna)C++20
21 / 100
20 ms2376 KiB
#include <bits/stdc++.h>
#include "dna.h"
using namespace std;

string A, B;

void init(string a, string b){
	A = a, B = b;
}

int get_distance(int x, int y){
	assert((y - x) <= 2);
	if(x == y){
		if(A[x] == B[x]) return 0;
		else return -1;
	}else if(y == x + 1){
		if(A[x] == B[x] && A[y] == B[y]) return 0;
		else if(A[x] == B[y] && A[y] == B[x]) return 1;
		else return -1;
	}else{
		bool ok = 1;
		int cnt = 0;
		map<char,int> mp1, mp2;
		for(int i = x; i <= y; ++i){
			ok &= A[i] == B[i];
			++mp1[A[i]], ++mp2[B[i]];
			cnt += A[i] == B[i];
		}
		if(ok) return 0;
		else if(mp1 == mp2){
			if(cnt == 0) return 2;
			return 1;
		}else return -1;
	}
}

/*int main(){
	#ifndef ONLINE_JUDGE
	freopen("inp.in", "r", stdin);
	freopen("output.out", "w", stdout);
	#endif

	ios_base::sync_with_stdio(0);
	cin.tie(nullptr); cout.tie(nullptr);


	return 0;
}*/
#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...