이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
#include "icc.h"
using namespace std ;
void run(int N)
{
int vis[N+1][N+1] ;
for(int i = 0 ; i <= N ; ++i)
{
for(int j = 0 ; j <= N ; ++j)
{
vis[i][j] = 0 ;
}
vis[i][i] = 1 ;
}
while(1)
{
for(int i = 1 ; i <= N ; ++i)
{
int a[1] , b[N+1] , siz_a = 1 , siz_b = 0 ;
a[0] = i ;
for(int j = i + 1 ; j <= N ; ++j)
{
if(vis[i][j]) continue ;
b[siz_b++] = j ;
}
if(!siz_b) continue ;
if(!query(siz_a,siz_b,a,b)) continue ;
int low = 0 , high = siz_b - 1 ;
while(low<high)
{
int mid = (low+high)/2 , c[N+1] , siz_c = 0 ;
for(int k = low ; k <= mid ; ++k)
{
c[siz_c++] = b[k] ;
}
if(query(siz_a,siz_c,a,c)) high = mid ;
else low = mid + 1 ;
}
int node = b[low] ;
b[0] = node ;
if(!query(1,1,a,b)) continue ;
if(vis[i][node]) continue ;
vis[i][node] = 1 , vis[node][i] = 1 ;
setRoad(i,node) ;
break ;
}
}
}
# | 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... |