Submission #676875

# Submission time Handle Problem Language Result Execution time Memory
676875 2023-01-01T12:47:54 Z radal Amusement Park (JOI17_amusement_park) C++17
10 / 100
47 ms 50716 KB
#include <bits/stdc++.h>
#include "Joi.h"
#pragma GCC target("sse,sse2,avx2")
#pragma GCC optimize("unroll-loops,O3")
#define rep(i,l,r) for (int i = l; i < r; i++)
#define repr(i,r,l) for (int i = r; i >= l; i--)
#define X first
#define Y second
#define all(x) (x).begin() , (x).end()
#define pb push_back
#define endl '\n'
#define debug(x) cerr << #x << " : " << x << endl;
using namespace std;
typedef long long ll;
typedef pair<int,int> pll;
constexpr int N = 1e6+10,mod = 1e9+7;

vector<int> aadj[N];
int TT,ttin[N];
bool vvis[N];

void dfs(int v,ll x){
	if ((x&(1ll << (TT%60)))) MessageBoard(v,1);
	else MessageBoard(v,0);
	ttin[v] = TT++;
	vvis[v] = 1;
	for (int u : aadj[v]) if (!vvis[u]) dfs(u,x);
}

void Joi(int n, int m, int A[], int B[], long long x, int tt) {
	rep(i,0,m){
		aadj[A[i]].pb(B[i]);
		aadj[B[i]].pb(A[i]);
	}
	rep(i,0,n) sort(all(aadj[i]));
	dfs(0,x);
	return;
}
#include "Ioi.h"
#include <bits/stdc++.h>
#pragma GCC target("sse,sse2,avx2")
#pragma GCC optimize("unroll-loops,O3")
#define rep(i,l,r) for (int i = l; i < r; i++)
#define repr(i,r,l) for (int i = r; i >= l; i--)
#define X first
#define Y second
#define all(x) (x).begin() , (x).end()
#define pb push_back
#define endl '\n'
#define debug(x) cerr << #x << " : " << x << endl;

using namespace std;
typedef long long ll;
typedef pair<int,int> pll;
constexpr int N = 1e6+10,mod = 1e9+7;
constexpr ll inf = 1e9+10;

vector<int> adj[N];
bool vis[N];
int tin[N],T;
int par[N],ans[70];
int po[N];

void dfs(int v){
	vis[v] = 1;
	tin[v] = T++;
	for (int u : adj[v]) if (!vis[u]){
		par[v] = u;
	   	dfs(u);
	}
}

long long Ioi(int n, int m, int A[], int B[], int P, int v, int tt) {
	rep(i,0,m){
		adj[A[i]].pb(B[i]);
		adj[B[i]].pb(A[i]);
	}
	rep(i,0,n) sort(all(adj[i]));
	dfs(0);
	memset(ans,-1,sizeof ans);
	swap(P,v);
	int cur = v;
	ans[tin[cur]%60] = P;
	int cnt = 1;
	while (cnt < 60){
		int fl = -1;
		int sz = adj[cur].size();
		while (po[cur] < sz){
			int u = adj[cur][po[cur]];
			po[cur]++;
			if (u == par[cur]) continue;
			if (ans[tin[u]%60] != -1) continue;
			fl = u;		
		}
		if (fl == -1)
			fl = par[cur];
		int t = tin[fl]%60;
		if (ans[t] == -1) cnt++;
		ans[t] = Move(fl);
		cur = fl;
	}
	ll out = 0;
	rep(i,0,60) if (ans[i]) out += (1ll << i);
	return out;
}
# Verdict Execution time Memory Grader output
1 Incorrect 26 ms 47876 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 43 ms 50716 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 24 ms 47520 KB Output is correct
2 Correct 25 ms 47568 KB Output is correct
3 Correct 25 ms 47748 KB Output is correct
4 Correct 26 ms 48008 KB Output is correct
5 Correct 27 ms 47944 KB Output is correct
6 Correct 26 ms 47964 KB Output is correct
7 Correct 26 ms 47972 KB Output is correct
8 Correct 27 ms 47964 KB Output is correct
9 Correct 33 ms 49840 KB Output is correct
10 Correct 32 ms 49868 KB Output is correct
11 Correct 36 ms 49864 KB Output is correct
12 Correct 24 ms 47740 KB Output is correct
13 Correct 25 ms 47712 KB Output is correct
14 Correct 27 ms 47676 KB Output is correct
15 Correct 25 ms 47688 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 47 ms 50640 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 44 ms 50604 KB Wrong Answer [7]
2 Halted 0 ms 0 KB -