Submission #147639

# Submission time Handle Problem Language Result Execution time Memory
147639 2019-08-30T10:44:49 Z JovanK26 Ljetopica (COI19_ljetopica) C++14
0 / 100
38 ms 4768 KB
#include <iostream>

    using namespace std;
    long long n,k;
    string path;
    string a;
    string b;
    long long aval=0;
    long long bval=0;
    long long rez=0;
    bool vis[100000007];
    void solve(long long start,long long kk,long long nn,bool chk)
    {
        if(nn==path.size())
        {
            if(!vis[start] && start>=aval && start<=bval)
            {
                rez+=start;
                rez%=1000000007;
                vis[start]=1;
                //cout << start << endl;
            }
            return;
        }
        if(kk==0)
        {
            if(!chk)
            {
                if(path[nn]=='L')solve(2*start,kk,nn+1,chk);
                else
                {
                    solve(2*start+1,kk,nn+1,chk);
                }
            }
            else
            {
                if(path[nn]=='R')solve(2*start,kk,nn+1,chk);
                else
                {
                    solve(2*start+1,kk,nn+1,chk);
                }
            }

        }
        else
        {
            if(!chk)
            {
                if(path[nn]=='L')
                {
                    solve(2*start,kk,nn+1,chk);
                solve(2*start+1,kk-1,nn+1,chk^1);
                }
                else
                {
                    solve(2*start+1,kk,nn+1,chk);
                solve(2*start,kk-1,nn+1,chk^1);
                }

            }
            else
            {
                if(path[nn]=='R')
                {
                    solve(2*start,kk,nn+1,chk);
                solve(2*start+1,kk-1,nn+1,chk^1);
                }
                else
                {
                    solve(2*start+1,kk,nn+1,chk);
                solve(2*start,kk-1,nn+1,chk^1);
                }
            }
        }
    }
    int main()
    {
        cin >> n >> k;
        cin >> path;
        cin >> a;
        cin >> b;
        long long br=0;
        for(long long i=a.size()-1;i>=0;i--)
        {
            if(a[i]=='1')aval+=(1<<br);
            br++;
        }
        br=0;
        for(long long i=b.size()-1;i>=0;i--)
        {
            if(b[i]=='1')bval+=(1<<br);
            br++;
        }
           solve(1,k,0,0);
           solve(1,k,0,1);
           cout << rez;
        return 0;
    }

Compilation message

ljetopica.cpp: In function 'void solve(long long int, long long int, long long int, bool)':
ljetopica.cpp:14:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         if(nn==path.size())
            ~~^~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Runtime error 9 ms 504 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 38 ms 4768 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 6 ms 632 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 9 ms 504 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -