Submission #1304865

#TimeUsernameProblemLanguageResultExecution timeMemory
1304865cansu_mutluSpeedrun (RMI21_speedrun)C++17
29 / 100
15 ms596 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++) { //cout << cnt[i] << " "; if(cnt[i]==n-1) { //cout << i << endl; setHint(i,1,true); } } //cout << endl; } //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; } } } else bas = start; for(int i=1;i<=n;i++) { if(i!=bas) { //cout << i << " "<< bas << endl; goTo(i); goTo(bas); } } } }
#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...