Submission #472250

#TimeUsernameProblemLanguageResultExecution timeMemory
472250aris12345678Mutating DNA (IOI21_dna)C++17
35 / 100
39 ms5048 KiB
#include "dna.h"
#include <bits/stdc++.h>
using namespace std;

const int mxN = 100005;
int pref[mxN], pref1[mxN], pref2[mxN];

void init(string a, string b) {
    int n = int(a.length());
    for(int i = 0; i < n; i++) {
        pref[i+1] = pref[i], pref1[i+1] = pref1[i], pref2[i+1] = pref2[i];
        if(a[i] != b[i])
            pref[i+1]++;
        if(a[i] == 'A')
            pref1[i+1]++;
        if(b[i] == 'A')
            pref2[i+1]++;
    }
}

int get_distance(int x, int y) {
    y++;
    if(pref2[y]-pref2[x] != pref1[y]-pref1[x])
        return -1;
    return (pref[y]-pref[x])/2;
}
/*
int main() {
    string a, b;
    cin >> a >> b;
    init(a, b);
    int n = int(a.length());
    for(int i = 1; i <= n; i++) {
        cout << pref[i] << " ";
    }
    cout << "\n";
    for(int i = 1; i <= n; i++) {
        cout << pref1[i] << " ";
    }
    cout << "\n";
    for(int i = 1; i <= n; i++) {
        cout << pref2[i] << " ";
    }
    cout << "\n";
    int q;
    scanf("%d", &q);
    while(q--) {
        int x, y;
        scanf("%d %d", &x, &y);
        printf("%d\n", get_distance(x, y));
    }
    return 0;
}
*/
#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...