Submission #1363572

#TimeUsernameProblemLanguageResultExecution timeMemory
1363572yavor_ptvMutating DNA (IOI21_dna)C++20
22 / 100
1594 ms2920 KiB
// SUBTASK 1 -> 3
#include <bits/stdc++.h>
#include "dna.h"
//#include "grader.cpp"

using namespace std;

string a, b;
vector <int> pref;

void init(string A, string B)
{
    a = A;
    b = B;
    int n = a.size();
    pref.clear();
    pref.resize(n);

    for (int i = 0; i < n; i++)
    {
        if (a[i] != b[i])
        {
            pref[i] = i > 0 ? pref[i - 1] + 1 : 1;
        }
        else pref[i] = i > 0 ? pref[i - 1] : 0;
    }
}

bool validate(int x, int y)
{
    string s1, s2;
    for (int i = x; i <= y; i++)
    {
        s1 += a[i];
        s2 += b[i];
    }
    sort(s1.begin(), s1.end());
    sort(s2.begin(), s2.end());
    return (s1 == s2);
}

int get_distance(int x, int y)
{
    if (!validate(x, y)) return -1;
    int br = 0;
    if (x > 0) br = pref[y] - pref[x - 1];
    else br = pref[y];
    //cout << br << endl;
    return br / 2;
}



/*
6 3
ATACAT
ACTATA
1 3
4 5
3 5


2
1
-1
*/
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...