Submission #1304939

#TimeUsernameProblemLanguageResultExecution timeMemory
1304939cansu_mutluSpeedrun (RMI21_speedrun)C++17
100 / 100
35 ms552 KiB
#include<bits/stdc++.h>
#include "speedrun.h"
using namespace std;
int n = 0,cnt = 0;
vector<int> vis;
vector<int> sira;
vector<vector<int>> a(n+1);
void dfs(int s,int anne)
{
    sira.push_back(s);
    for(int x=1;x<=10;x++)
            {
                if((1<<(x-1))&anne)
                {
                    setHint(s,x,true);
                }
            }
    for(int x:a[s])
    {
        if(x!=anne) dfs(x,s);
    }
}
void assignHints(int subtask, int N, int A[], int B[])
{
    int n = N;
    a.resize(n+1);
    for(int i=1;i<n;i++)
    {
        int u = A[i];
        int v = B[i];
        a[u].push_back(v);
        a[v].push_back(u);
    }
    setHintLen(20);
    dfs(1,0);
    
    for(int i=0;i<n;i++)
    {
        if(i>0)
        {
            
            //int kendi = sira[i];
            
        }
        if(i<n-1)
        {
            //cout << i << " "<< sira.size() << endl;
            int cocuk = sira[i+1];
            for(int x=1;x<=10;x++)
            {
                if((1<<(x-1))&cocuk)
                {
                    setHint(sira[i],x+10,true);
                }
            }
        }
    }
}
int atabul()
{
    int cur = 0;
    for(int i=1;i<=10;i++)
    {
        if(getHint(i))
        {
            cur+= (1<<(i-1));
        }
    }
    return cur;
}
int cocukbul()
{
    int cur = 0;
    for(int i=1;i<=10;i++)
    {
        if(getHint(i+10))
        {
            cur+= (1<<(i-1));
        }
    }
    return cur;
}
void speedrun(int subtask, int N, int start)
{
    n = N;
    int s = start;
    int cur = atabul();
    int eski = start;
    while(cur!=0)
    {
        //cout << eski << " "<< cur << endl;
        goTo(cur);
        int nw = atabul();
        eski = cur;
        cur = nw;
    }
    cur = cocukbul();
    while(cur!=0)
    {
        while(goTo(cur)==false)
        {
            goTo(atabul());
        }
        cur = cocukbul();
    }
}
#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...