Submission #205557

#TimeUsernameProblemLanguageResultExecution timeMemory
205557ArshiaDadrasAmusement Park (JOI17_amusement_park)C++14
18 / 100
39 ms4860 KiB
/* In the name of Allah */ #include<bits/stdc++.h> #include<Joi.h> using namespace std; const int N = 1e4 + 5; vector<int> adj[N], V; bool mark[N]; void dfs(int u) { sort(adj[u].begin(), adj[u].end()); mark[u] = true, V.push_back(u); for (auto v: adj[u]) if (!mark[v]) dfs(v); } void Joi(int n, int m, int a[], int b[], long long x, int t) { for (int u = 0; u < n; u++) adj[u].clear(); for (int i = 0; i < m; i++) { adj[a[i]].push_back(b[i]); adj[b[i]].push_back(a[i]); } V.clear(), memset(mark, false, sizeof mark), dfs(0); for (int i = 0; i < n; i++) MessageBoard(V[i], i < 60? x >> i & 1: 0); }
/* In the name of Allah */ #include<bits/stdc++.h> #include<Ioi.h> using namespace std; const int N = 1e4 + 5; vector<int> adj[N], V; long long answer; bool mark[N]; int cur; bool go(int u) { mark[u] = true; if (!u) return true; for (auto v: adj[u]) if (!mark[v] && go(v)) { V.push_back(v); return true; } return false; } void dfs(int u, long long b) { mark[u] = true; answer |= b << cur++; sort(adj[u].begin(), adj[u].end()); for (auto v: adj[u]) if (!mark[v] && cur < 60) { dfs(v, Move(v)); Move(u); } } long long Ioi(int n, int m, int a[], int b[], int p, int v, int t) { for (int u = answer = cur = 0; u < n; u++) adj[u].clear(); for (int i = 0; i < m; i++) { adj[a[i]].push_back(b[i]); adj[b[i]].push_back(a[i]); } V.clear(), memset(mark, false, sizeof mark); go(p), reverse(V.begin(), V.end()); for (auto u: V) v = Move(p = u); memset(mark, false, sizeof mark), dfs(p, v); return answer; }
#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...