제출 #1355166

#제출 시각아이디문제언어결과실행 시간메모리
1355166Charizard2021Mutating DNA (IOI21_dna)C++20
43 / 100
1595 ms2544 KiB
#include "dna.h"
#include<bits/stdc++.h>
using namespace std;
int n;
string A;
string B;
void init(string a, string b){
	n = (int)a.size();
	A = a;
	B = b;
}
int get_distance(int x, int y){
	map<char, int> mp;
	map<char, int> mp2;
	string C = "";
	string D = "";
	for(int i = x; i <= y; i++){
		mp[A[i]]++;
		mp2[B[i]]++;
		C += A[i];
		D += B[i];
	}
	if(mp['A'] == mp2['A'] && mp['C'] == mp2['C'] && mp['T'] == mp2['T']){
		int m = y - x + 1;
		int cnt = 0;
		for(int i = 0; i < m; i++){
			if(C[i] == D[i]){
				continue;
			}
			else{
				bool done = true;
				for(int j = i + 1; j < m; j++){
					if(D[i] == C[j] && D[j] == C[i]){
						char x1 = C[i];
						char x2 = C[j];
						C[j] = x1;
						C[i] = x2;
						cnt++;
						done = false;
						break;
					}
				}
				if(done){
					for(int j = i + 1; j < m; j++){
						if(D[i] == C[j]){
							char x1 = C[i];
							char x2 = C[j];
							C[j] = x1;
							C[i] = x2;
							cnt++;
							break;
						}
					}
				}
			}
		}
		return cnt;
	}
	else{
		return -1;
	}
}
#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...