Submission #600360

#TimeUsernameProblemLanguageResultExecution timeMemory
600360OrazBMutating DNA (IOI21_dna)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
//#include "dna.h"
#define N 100005
#define wr cout << "Continue debugging\n";
#define ll long long int
#define pii pair <string, int>
#define pb push_back
#define ff first
#define ss second
using namespace std;

map <pii, int> pr;
map <string, int> m;
vector <string> v = {"AT", "TA", "AC", "CA", "CT", "TC"};

void init(string a, string b){
	int n = a.size();
	a = ' ' + a;
	b = ' ' + b;
	for (int i = 1; i <= n; i++){
		if (a[i] != b[i]){
			string s = "";
			s += a[i]; 
			s += b[i];	
			pr[{s, i}] = 1;
		} 
	}
	for (int i = 2; i <= n; i++){
		for (auto s : v) pr[{s, i}] += pr[{s, i - 1}];
	}
}
int get_distance(int l, int r){
	for (auto s : v) m[s] = 0;
	l++; r++;
	int ans = 0;
	for (auto s : v) m[s] = pr[{s, r}] - pr[{s, l - 1}]; 
	int mn = min(m[v[0]], m[v[1]]);
	ans += mn;
	m[v[0]] -= mn;
	m[v[1]] -= mn;
	mn = min(m[v[2]], m[v[3]]);
	ans += mn;
	m[v[2]] -= mn;
	m[v[3]] -= mn;
	mn = min(m[v[4]], m[v[5]]);
	ans += mn;
	m[v[4]] -= mn;
	m[v[5]] -= mn;
	for (auto s : v){
		string c = "", t1 = "";
		c += s[1];
		if ('A' != s[0] and 'A' != s[1]) c += 'A';
		else if ('T' != s[0] and 'T' != s[1]) c += 'T';
		else c += 'C';
		t1 += s[0];
		t1 += c[1];
		int mn = min(m[s], m[c]);
		ans += mn;
		m[s] -= mn;
		m[c] -= mn;
		m[t1] += mn;
	}
	mn = min(m[v[0]], m[v[1]]);
	ans += mn;
	m[v[0]] -= mn;
	m[v[1]] -= mn;
	mn = min(m[v[2]], m[v[3]]);
	ans += mn;
	m[v[2]] -= mn;
	m[v[3]] -= mn;
	mn = min(m[v[4]], m[v[5]]);
	ans += mn;
	m[v[4]] -= mn;
	m[v[5]] -= mn;
	for (auto i : v) if (m[i]) return -1;
	return ans;
}
int main ()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	int n1, q1;
	string a, b;
	cin >> n1 >> q1 >> a >> b;
	init(a, b);
	while(q1--){
		int x, y;
		cin >> x >> y;	
		cout << get_distance(x, y);
	}
}	

Compilation message (stderr)

/usr/bin/ld: /tmp/ccnwihNh.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccVpMMfl.o:dna.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status