Submission #1256357

#TimeUsernameProblemLanguageResultExecution timeMemory
1256357WeIlIaNWorld Map (IOI25_worldmap)C++20
15 / 100
55 ms7492 KiB
#include "worldmap.h"
#include <bits/stdc++.h>
using namespace std;

#define MOD1 1000000007
#define MOD2 998244353
#define fir first
#define sec second
#define pushf push_front
#define pushb push_back
#define popf pop_front
#define popb pop_back
#define mp make_pair
#define all(a) a.begin(), a.end()

#define FOR1(a) for (ll _ = 0; _ < ll(a); ++_)
#define FOR2(i, a) for (ll i = 0; i < ll(a); ++i)
#define FOR3(i, a, b) for (ll i = a; i < ll(b); ++i)
#define RFOR1(a) for (ll _ = (a)-1; _ >= ll(0); --_)
#define RFOR2(i, a) for (ll i = (a)-1; i >= ll(0); --i)
#define RFOR3(i, a, b) for (ll i = (b)-1; i >= ll(a); --i)
#define overload3(a, b, c, d, ...) d
// Always choose the fourth argument to call. Hence, which function to call is determined by the number of given arguments.
#define REP(...) overload3(__VA_ARGS__, FOR3, FOR2, FOR1)(__VA_ARGS__)
#define RREP(...) overload3(__VA_ARGS__, RFOR3, RFOR2, RFOR1)(__VA_ARGS__)

typedef long long ll;
typedef pair<int, int> pii;
typedef vector<int> vi;
typedef pair<ll, ll> pll;
typedef vector<ll> vll;
typedef vector<bool> vb;
typedef vector<char> vc;
typedef vector<string> vs;
typedef vector<pii> vpii;
typedef vector<pll> vpll;
typedef vector<vi> vvi;
typedef vector<vll> vvll;
typedef vector<vb> vvb;
typedef vector<vc> vvc;
typedef vector<vpii> vvpii;
typedef vector<vpll> vvpll;
typedef queue<int> qi;
typedef queue<ll> qll;
typedef queue<pii> qpii;
typedef queue<pll> qpll;
typedef deque<int> dqi;
typedef deque<ll> dqll;
typedef deque<pii> dqpii;
typedef deque<pll> dqpll;
typedef priority_queue<int> pqi;
typedef priority_queue<ll> pqll;
typedef priority_queue<pii> pqpii;
typedef priority_queue<pll> pqpll;
typedef priority_queue<int, vi, greater<int> > r_pqi;
typedef priority_queue<ll, vll, greater<ll> > r_pqll;
typedef priority_queue<pii, vpii, greater<pii> > r_pqpii;
typedef priority_queue<pll, vpll, greater<pll> > r_pqpll;

vi seq;
vb vis;
vi pos;
vvi adj;

void dfs(int u) {
	vis[u] = true;
	seq.pushb(u);
	pos[u] = seq.size();
	seq.pushb(u);
	seq.pushb(u);
	int l = adj[u].size();
	REP(i, l) {
		int v = adj[u][i];
		if(vis[v]) {
			continue;
		}
		dfs(v);
		seq.pushb(u);
	}
}

vvi create_map(int n, int m, vi A, vi B) {
	adj = vvi(n+1);
	vis = vb(n+1);
	pos = vi(n+1);
	seq.clear();
	REP(i, m) {
		adj[A[i]].pushb(B[i]);
		adj[B[i]].pushb(A[i]);
	}
	dfs(1);
	int h = seq.size();
	vvi ans(h, vi(h, 0));
	REP(i, h) {
		REP(j, h) {
			ans[i][j] = seq[i];
		}
	}
	return ans;
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...