Submission #699859

#TimeUsernameProblemLanguageResultExecution timeMemory
699859cig32Amusement Park (JOI17_amusement_park)C++17
0 / 100
24 ms4316 KiB
#include "Joi.h" #include <bits/stdc++.h> using namespace std; static vector<int> adj2[12269]; static bool vis2[12269]; static int val2[12269]; static int nxt2; static void dfs2(int node, long long X, int par) { val2[node] = nxt2; nxt2 = (nxt2 + 1) % 60; long long res = (X & (1ll << val2[node])); MessageBoard(node, (res > 0 ? 1 : 0)); vis2[node] = 1; for(int x: adj2[node]) { if(!vis2[x]) { dfs2(x, X, node); } } } void Joi(int N, int M, int A[], int B[], long long X, int T) { for(int i=0; i<M; i++) { adj2[A[i]].push_back(B[i]); adj2[B[i]].push_back(A[i]); } for(int i=0; i<N; i++) { sort(adj2[i].begin(), adj2[i].end()); } for(int i=0; i<N; i++) { vis2[i] = 0; } dfs2(0, X, -1); }
#include "Ioi.h" #include <bits/stdc++.h> using namespace std; const int MAXN = 1e4 + 10; static vector<int> adj[MAXN]; static bool vis[MAXN]; static int val[MAXN]; static int nxt; static vector<int> et; static void dfs(int node, int par) { val[node] = nxt; nxt = (nxt+1) % 60; vis[node] = 1; et.push_back(node); for(int x: adj[node]) { if(!vis[x]) { dfs(x, node); et.push_back(node); } } } long long Ioi(int N, int M, int A[], int B[], int P, int V, int T) { for(int i=0; i<M; i++) { adj[A[i]].push_back(B[i]); adj[B[i]].push_back(A[i]); } for(int i=0; i<N; i++) { sort(adj[i].begin(), adj[i].end()); } for(int i=0; i<N; i++) { vis[i] = 0; } dfs(0, -1); long long ans = 0; int res[60]; for(int i=0; i<60; i++) res[i] = 0; res[val[P]] = V; int l[N]; for(int i=0; i<N; i++) l[i] = -1; for(int i=0; i<et.size(); i++) { if(l[et[i]] == -1) l[et[i]] = i; } int node = P, idx = l[P]; for(int i=val[P]-1; i>=0; i--) { while(idx-1 >= 0 && val[et[idx]] != i) { idx--; int rm = Move(et[idx]); node = et[idx]; res[val[node]] = rm; } } for(int i=1; i<60; i++) { while(idx+1 < et.size() && val[et[idx]] != i) { idx++; int rm = Move(et[idx]); node = et[idx]; res[val[node]] = rm; } } for(int i=0; i<60; i++) { if(res[i]) ans += (1ll << i); } return ans; }

Compilation message (stderr)

Ioi.cpp: In function 'long long int Ioi(int, int, int*, int*, int, int, int)':
Ioi.cpp:41:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   41 |   for(int i=0; i<et.size(); i++) {
      |                ~^~~~~~~~~~
Ioi.cpp:54:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   54 |     while(idx+1 < et.size() && val[et[idx]] != i) {
      |           ~~~~~~^~~~~~~~~~~
#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...