Submission #571464

#TimeUsernameProblemLanguageResultExecution timeMemory
571464il9Mutating DNA (IOI21_dna)C++17
0 / 100
30 ms3448 KiB
#include <iostream>

using namespace std;
int pre[100001][6];
int n;
int q;
int get_distance(int x,int y)
{
    //pre[y+1]-pre[x]
    int ans[6];
    for(int i=0;i<6;i++)
    {
        ans[i]=pre[y+1][i]-pre[x][i];
    }
    int prop=0;
    for(int i=0;i<6;i+=2)
    {
        prop+=min(ans[i],ans[i+1]);
        ans[i]-=min(ans[i],ans[i+1]);
        ans[i+1]-=min(ans[i],ans[i+1]);
    }
    for(int i=0;i<6;i++)
    {
        prop+=ans[i];
    }
    return prop;
}
void init(string a, string b)
{
    cin>>n;
    cin>>q;
    for(int i=0;i<6;i++)
    {
        pre[0][i]=0;
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<6;j++)
        {
            pre[i+1][j]=pre[i][j];
        }
        if(a[i]!=b[i])
        {
            if(a[i]=='A')
            {
                if(b[i]=='T')
                {
                    pre[i+1][0]++;
                }else if(b[i]=='C')
                {
                     pre[i+1][2]++;
                }

            }else if(a[i]=='T')
            {
                if(b[i]=='A')
                {
                    pre[i+1][1]++;
                }else if(b[i]=='C')
                {
                    pre[i+1][5]++;
                }
            }else if(a[i]=='C')
            {
                if(b[i]=='T')
                {
                    pre[i+1][4]++;
                }else if(b[i]=='A')
                {
                    pre[i+1][3]++;
                }
            }
        }
    }
}
#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...