제출 #1198669

#제출 시각아이디문제언어결과실행 시간메모리
1198669ackhavaGame (APIO22_game)C++20
60 / 100
4078 ms38272 KiB
#include "game.h" #include <bits/stdc++.h> #define fi first #define se second #define pb push_back #define REP(i,o,n) for(auto i=o;i<n;i++) using namespace std; int origin[3001000]; // max. origin int dest[300100]; // min. dest vector<int> adj[300100]; vector<int> rdj[300100]; int k; void init(int n, int k) { ::k=k; REP(i,0,n+10)origin[i]=-1,dest[i]=i; REP(i,0,k)origin[i]=i; REP(i,0,n+10)adj[i].clear(),rdj[i].clear(); } void dfs_origin(int node, int v){ if(origin[node]>=v)return; origin[node]=v; for(auto i:adj[node])dfs_origin(i,v); } void dfs_dest(int node, int v){ if(dest[node]<=v)return; dest[node]=v; for(auto i:rdj[node])dfs_dest(i,v); } int add_teleporter(int u, int v) { if(origin[u]>=dest[v] && origin[u]<=(k-1))return 1; adj[u].pb(v); rdj[v].pb(u); dfs_origin(v,origin[u]); dfs_dest(u,dest[v]); return 0; }
#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...