제출 #1219901

#제출 시각아이디문제언어결과실행 시간메모리
1219901guagua0407게임 (APIO22_game)C++20
0 / 100
0 ms408 KiB
#include "game.h" //#include "grader.cpp" #include <bits/stdc++.h> using namespace std; #define ll long long #define pii pair<int,int> #define f first #define s second #define all(x) x.begin(),x.end() #define _ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); namespace{ const int inf=1e9; vector<int> mn,mx; int k; vector<vector<int>> adj,adjr; } void init(int n, int _k) { k=_k; mn=vector<int>(n,inf); mx=vector<int>(n,-1); adj.resize(n); adjr.resize(n); for(int i=0;i<k;i++){ if(i>0){ mx[i]=i-1; adjr[i].push_back(i-1); } if(i<k-1){ mn[i]=i+1; adj[i].push_back(i+1); } } } int add_teleporter(int a, int b) { adj[a].push_back(b); adjr[b].push_back(a); { int tmp=mn[b]; if(b<k) tmp=min(tmp,b); if(tmp<mn[a]){ mn[a]=tmp; queue<int> q; q.push(a); while(!q.empty()){ int v=q.front(); q.pop(); if(mn[v]<=mx[v]){ //assert(b<=a); return 1; } for(auto u:adjr[v]){ if(mn[v]<mn[u]){ mn[u]=mn[v]; q.push(u); } } } } } { int tmp=mx[a]; if(a<k) tmp=max(tmp,a); if(tmp>mx[b]){ mx[b]=tmp; queue<int> q; q.push(b); while(!q.empty()){ int v=q.front(); q.pop(); if(mn[v]<=mx[v]){ //assert(b<=a); return 1; } for(auto u:adj[v]){ if(mx[v]>mx[u]){ mx[u]=mx[v]; q.push(u); } } } } } assert(a<b); 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...