# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
405201 | CaroLinda | From Hacks to Snitches (BOI21_watchmen) | C++14 | 681 ms | 524292 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
const int MAXT = 130 ;
const int MAXN = 1e5+10 ;
#define pb push_back
#define mk make_pair
using namespace std ;
int N , M , K ,C ;
int code[MAXN][MAXT] ;
int dist[ MAXN*MAXT ] ;
vector<pair<int,int> > edge ;
vector<int> adj[ MAXN*MAXT ] ;
bool nao_pode[MAXN*MAXT] ;
int fila[MAXN*MAXT] ;
void bfs()
{
int ini = 0 , fim =1 ;
fila[0] = code[1][0] ;
for(int i = 0 ; i <= code[N][C-1] ; i++ ) dist[i] = -1 ;
dist[ code[1][0] ] = 0;
while(ini < fim)
{
int x = fila[ini++] ;
for(auto e : adj[x] )
{
if( dist[e] != -1 ) continue ;
if( nao_pode[e] ) continue ;
dist[e] = dist[x]+1 ;
fila[fim++] = e ;
}
}
}
int main()
{
scanf("%d %d", &N, &M ) ;
for(int i = 1 , u , v ; i<= M ; i++ )
{
scanf("%d %d", &u, &v ) ;
edge.pb(mk(u,v)) ;
}
scanf("%d", &K ) ;
scanf("%d", &C ) ;
for(int i = 1 , c = 0 ; i <= N ; i++ )
for(int j = 0 ; j < C ; j++ , c++ ) code[i][j] = c ;
for(int i = 1 ; i <= N ; i++ )
for(int j = 0 ; j < C ; j++ )
adj[ code[i][j] ].pb( code[i][ (j+1)%C ] ) ;
for(int i = 0 , x ; i < C ; i++ )
{
scanf("%d", &x ) ;
nao_pode[ code[x][i] ] = true ;
}
for(auto &e : edge )
for(int g = 0 ; g < 2 ; g++ , swap(get<0>(e) , get<1>(e)))
for(int i = 0 ; i < C ; i++ )
{
if( nao_pode[ code[get<1>(e)][ i ] ] && nao_pode[code[get<0>(e)][(i+1)%C]] ) continue ;
adj[ code[get<0>(e)][i] ].pb( code[get<1>(e)][ (i+1)%C ] ) ;
}
bfs() ;
int ans = -1 ;
for(int i = 0 ; i < C ; i++ )
if( dist[ code[N][i] ] != -1 && (ans == -1 || dist[code[N][i]] < ans) )
ans = dist[code[N][i]] ;
if( ans == -1 ) { printf("impossible\n") ; return 0 ; }
printf("%d\n" , ans ) ;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |