Submission #437115

#TimeUsernameProblemLanguageResultExecution timeMemory
437115MilosMilutinovicMutating DNA (IOI21_dna)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; const int N = 1e5 + 5; int pref[N][3][3]; map<char, int> mp; void init(string a, string b) { mp['A'] = 0; mp['C'] = 1; mp['T'] = 2; int n = (int) a.size(); for (int i = 0; i < n; i++) { for (int j = 0; j < 3; j++) { for (int k = 0; k < 3; k++) { pref[i + 1][j][k] = pref[i][j][k] + (j == mp[a[i]] && k == mp[b[i]]); } } } } int get_distance(int l, int r) { vector<vector<int>> tmp(3, vector<int>(3)); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { tmp[i][j] = pref[r + 1][i][j] - pref[l][i][j]; } } if (tmp[0][1] + tmp[0][2] != tmp[1][0] + tmp[2][0]) { return -1; } if (tmp[1][0] + tmp[1][2] != tmp[0][1] + tmp[2][1]) { return -1; } int ans = 0; for (int i = 0; i < 3; i++) { for (int j = i + 1; j < 3; j++) { int mn = min(tmp[i][j], tmp[j][i]); tmp[i][j] -= mn; tmp[j][i] -= mn; ans += mn; } } int add = 1e9; for (int i = 0; i < 3; i++) { for (int j = i + 1; j < 3; j++) { add = min(add, max(tmp[i][j], tmp[j][i])); } } return ans + add * 2; } int main() { ios::sync_with_stdio(false); cin.tie(0); string s, t; cin >> s >> t; init(s, t); int qq; cin >> qq; while (qq--) { int l, r; cin >> l >> r; cout << get_distance(l, r) << '\n'; } return 0; }

Compilation message (stderr)

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