제출 #840824

#제출 시각아이디문제언어결과실행 시간메모리
840824JkapDNA 돌연변이 (IOI21_dna)C++17
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define vl vector<ll>
#define for1(i, n) for (ll i=0; i<n; i++)

int nA1[100005], nA2[100005], nC1[100005], nC2[100005], AT[100005], AC[100005], CT[100005], CA[100005], TC[100005], TA[100005];

void init(string a, string b) {
    ll n = a.size();
    for1(i, n) {
        nA1[i+1] = nA1[i];
        nC1[i+1] = nC1[i];
        nA2[i+1] = nA2[i];
        nC2[i+1] = nC2[i];
        AT[i+1] = AT[i];
        AC[i+1] = AC[i];
        CT[i+1] = CT[i];
        CA[i+1] = CA[i];
        TA[i+1] = TA[i];
        TC[i+1] = TC[i];
        if (a[i] == 'A') {
            nA1[i+1]++;
            if (b[i] == 'C') {
                AC[i+1] ++;
            }
            if (b[i] == 'T') {
                AT[i+1] ++;
            }
        }
        else if (a[i] == 'C') {
            nC1[i+1] ++;
            if (b[i] == 'A') {
                CA[i+1] ++;
            }
            if (b[i] == 'T') {
                CT[i+1] ++;
            }
        }
        else {
            if (b[i] == 'C') {
                TC[i+1] ++;
            }
            if (b[i] == 'A') {
                TA[i+1] ++;
            }
        }
        if (b[i] == 'A') {
            nA2[i+1]++;
        }
        else if (b[i] == 'C') {
            nC2[i+1] ++;
        }
    }
}

int get_distance(int x, int y) {
    if (nA1[y+1] - nA1[x] != nA2[y+1] - nA2[x] || nC1[y+1] - nC1[x] != nC2[y+1] - nC2[x]) {
        return -1;
    }
    int out;
    out = min(AC[y+1]-AC[x], CA[y+1]-CA[x]);
    out += min(AT[y+1]-AT[x], TA[y+1]-TA[x]);
    out += min(TC[y+1]-TC[x], CT[y+1]-CT[x]);
    out += 2*(max(AC[y+1]-AC[x], CA[y+1]-CA[x]) - min(AC[y+1]-AC[x], CA[y+1]-CA[x]));
    return out;
}

int main() {
    int q;
    cin >> q;
    string a, b;
    cin >> a >> b;
    init(a, b);
    for1(i, q) {
        int x, y;
        cin >> x >> y;
        cout << get_distance(x, y) << endl;
    }
}

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

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