제출 #1202629

#제출 시각아이디문제언어결과실행 시간메모리
1202629LIAAmusement Park (JOI17_amusement_park)C++20
0 / 100
16 ms2120 KiB
// Joi.cpp
#include "Joi.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef tuple<ll, ll, ll> plll;
typedef vector<plll> vplll;
typedef pair<ll, ll> pll;
typedef vector<ll> vll;
typedef vector<pll> vpll;
typedef vector<vector<pll>> vvpll;
typedef vector<vector<ll>> vvll;
typedef vector<bool> vb;
typedef vector<vector<bool>> vvb;
#define loop(i, s, e) for (ll i = (s); i < (e); ++i)
#define loopr(i, e, s) for (ll i = (e)-1; i >= (s); --i)
#define all(a) a.begin(), a.end()
const ll inf = 1e9 + 7;

static vvll g;
static vb vis;
static ll cnt;
static void dfs(ll node) {
  if (cnt == 0) return;
  cnt--;
  MessageBoard(node, 1);
  vis[node] = true;
  for (auto it : g[node]) {
	if (!vis[it]) dfs(it);
  }
}

void Joi(int n, int m, int a[], int b[], long long x, int t) {
  cnt = x;
  g.assign(n, {});
  vis.assign(n, false);
  for (int i = 0; i < m; i++) {
	int ai = a[i], bi = b[i];
	g[ai].push_back(bi);
	g[bi].push_back(ai);
  }

  dfs(0);
  for (int i = 0; i < n; i++) {
	if (!vis[i]) MessageBoard(i, 0);
  }
}
// Ioi.cpp
#include "Ioi.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef tuple<ll, ll, ll> plll;
typedef vector<plll> vplll;
typedef pair<ll, ll> pll;
typedef vector<ll> vll;
typedef vector<pll> vpll;
typedef vector<vector<pll>> vvpll;
typedef vector<vector<ll>> vvll;
typedef vector<bool> vb;
typedef vector<vector<bool>> vvb;
#define loop(i, s, e) for (ll i = (s); i < (e); ++i)
#define loopr(i, e, s) for (ll i = (e)-1; i >= (s); --i)
#define all(a) a.begin(), a.end()
const ll inf = 1e9 + 7;

static vvll ad;
static vb vis1;
static ll cnt1;

static void dfs(int node) {
  vis1[node] = true;
  for (int nxt : ad[node]) {
	if (!vis1[nxt]) {
	  ll a = Move(nxt);   // go down one edge
	  cnt1+=a;
	  dfs(nxt);
	  ll b = Move(node);  // come right back up one edge

	}
  }
}
long long Ioi(int n, int m, int a[], int b[], int p, int v, int t) {
  ad.assign(n, {});
  vis1.assign(n, false);
  for (int i = 0; i < m; i++) {
	int ai = a[i], bi = b[i];
	ad[ai].push_back(bi);
	ad[bi].push_back(ai);
  }
  cnt1 = v;
  // Move(p);
  dfs(p);
  return cnt1;
}
#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...