제출 #863710

#제출 시각아이디문제언어결과실행 시간메모리
863710VMaksimoski008DNA 돌연변이 (IOI21_dna)C++17
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> #define sz(x) (int)x.size() #define int long long using namespace std; using ll = long long; const int maxn = 1e5+5; string a, b; int n; int prefix[3][3][maxn+1]; inline int32_t getHash(char &ch) { if(ch == 'A') return 0; if(ch == 'C') return 1; return 2; } void init(string x, string y) { a = x; b = y; n = sz(a); for(int i=0; i<3; i++) for(int j=0; j<3; j++) for(int k=0; k<n; k++) prefix[i][j][k+1] = prefix[i][j][k] + (getHash(a[k]) == i && getHash(b[k]) == j); } int32_t get_distance(int x, int y) { for(int i=0; i<3; i++) { int cnt1=0, cnt2=0; for(int j=0; j<3; j++) { cnt1 += prefix[i][j][y+1] - prefix[i][j][x]; cnt2 += prefix[j][i][y+1] - prefix[j][i][x]; } if(cnt1 != cnt2) return -1; } int ans1 = 0, ans2 = 0; int v[3][3]; for(int i=0; i<3; i++) for(int j=0; j<3; j++) v[i][j] = prefix[i][j][y+1] - prefix[i][j][x]; for(int i=0; i<3; i++) { for(int j=i+1; j<3; j++) { if(v[i][j] < v[j][i]) swap(v[i][j], v[j][i]); ans2 += v[i][j] - v[j][i]; ans1 += v[j][i]; } } return ans1 + ans2 / 3 * 2; } int32_t main() { int n, q; cin >> n >> q; string x, y; cin >> x >> y; init(x, y); while(q--) { int l, r; cin >> l >> r; cout << get_distance(l, r) << '\n'; } return 0; }

컴파일 시 표준 에러 (stderr) 메시지

/usr/bin/ld: /tmp/ccx1rW12.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/cc5CDeN2.o:dna.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/ccx1rW12.o: in function `main':
grader.cpp:(.text.startup+0x39d): undefined reference to `get_distance(int, int)'
collect2: error: ld returned 1 exit status