제출 #1214261

#제출 시각아이디문제언어결과실행 시간메모리
1214261trimkusDNA 돌연변이 (IOI21_dna)C++20
0 / 100
31 ms2624 KiB
#include "dna.h"
#include <bits/stdc++.h>
using namespace std;


map<char, int> mp;
string a, b;
void init(std::string _a, std::string _b) {
	a = _a;
	b = _b;
	mp['A'] = 0;
	mp['T'] = 1;
	mp['C'] = 2;
}

int get_distance(int x, int y) {
	vector<vector<int>> d1(3), d2(3);
	for (int i = x; i <= y; ++i) {
		d1[mp[a[i]]].push_back(i);
		d2[mp[b[i]]].push_back(i);
	}
	int res = 0;
	for (int i = 0; i < 3; ++i) {
		auto& v1 = d1[i];
		auto& v2 = d2[i];
		if (v1.size() != v2.size()) return -1;
		set<int> st;
		for (auto& u : v1) st.insert(u);
		for (auto& u : v2) {
			if (st.count(u)) continue;
			res += 1;
		}
	}
	// cerr << "[" << a.substr(x, y - x + 1) << " , " << b.substr(x, y - x + 1) << "] = " << res << "\n";
	// assert(res % 2 == 0);
	return res - 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...