Submission #1304859

#TimeUsernameProblemLanguageResultExecution timeMemory
1304859cansu_mutluSpeedrun (RMI21_speedrun)C++17
21 / 100
15 ms608 KiB
#include<bits/stdc++.h>
#include "speedrun.h"
using namespace std;
int n = 0,cnt = 0;
vector<int> vis;
void assignHints(int subtask, int N, int A[], int B[])
{
    n = N;
    if(subtask==1)
    {
        setHintLen(n);
    for(int i=1;i<n;i++)
    {
        int u = A[i],v = B[i];
        setHint(u,v,true);
        setHint(v,u,true);
    }
    }
    else
    {
        setHintLen(1);
        int ata = 0;
        vector<int> cnt(n+1,0);
        for(int i=1;i<n;i++)
        {
            int u = A[i],v = B[i];
            cnt[u]++;
            cnt[v]++;
        }
        for(int i=1;i<=n;i++)
        {
            if(cnt[i]==n-1)
            {
                setHint(i,1,true);
            }
        }
    }
    //return;
}
void dfs(int s,int anne)
{
    vis[s] = 1;
   
    for(int x=1;x<=n;x++)
    {
        if(x!=anne && vis[x]== 0 && getHint(x))
        {
            vis[x] = 1;
            goTo(x);
            dfs(x,s);
            goTo(s);
        }
    }
}
void speedrun(int subtask, int N, int start)
{
    n = N;
    vis.resize(n+1,0);
    getLength();
    if(subtask ==1)
    {
        dfs(start,0);
    }
    else
    {
        int bas =0;
        vis[start] = 1;
        if(getHint(1)==false)
        {
            bool yes = false;
            for(int i=1;i<=n;i++)
            {
                if(i==start) continue;
                yes = goTo(i);
                if(yes)
                {
                    bas = i;
                    vis[i] = 1;
                    break;
                }
            }
            for(int i=1;i<=n;i++)
            {
                if(vis[i]==0)
                {
                    goTo(i);
                    goTo(bas);
                }
            }

        }
    }
    //return;
}
#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...