# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
44334 | chonka | 도서관 (JOI18_library) | C++14 | 308 ms | 488 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "library.h"
#include<iostream>
#include<stdio.h>
using namespace std ;
int n ;
vector < int > ret ;
vector < int > aux ;
void rev ( vector < int > &v ) {
int sz = v.size ( ) ;
int i ;
for ( i = 0 ; i < ( sz / 2 ) ; i ++ ) {
swap ( v[ i ] , v[ sz - i - 1 ] ) ;
}
}
void unite ( int val ) {
int i ;
for ( i = 0 ; i < n ; i ++ ) {
aux[ i ] = 0 ;
}
int sz = ret.size ( ) ;
aux[ ret[ sz - 1 ] - 1 ] = 1 ;
aux[ val - 1 ] = 1 ;
if ( Query ( aux ) == 2 ) {
rev ( ret ) ;
}
ret.push_back ( val ) ;
}
bool f ( int x ) {
int i ;
for ( i = 0 ; i < n ; i ++ ) {
aux[ i ] = 0 ;
}
int sz = ret.size ( ) ;
for ( i = 0 ; i < sz ; i ++ ) {
aux[ ret[ i ] - 1 ] = 1 ;
}
int lft = x ;
for ( i = 0 ; i < n ; i ++ ) {
if ( aux[ i ] != 0 ) { continue ; }
lft -- ;
aux[ i ] = 1 ;
if ( lft <= 0 ) { break ; }
}
int ans1 = Query ( aux ) ;
for ( i = 0 ; i < sz ; i ++ ) {
aux[ ret[ i ] - 1 ] = 0 ;
}
int ans2 = Query ( aux ) ;
return ( ans1 == ans2 ) ;
}
void add ( int id ) {
int l , r , mid ;
l = 1 ;
r = n - id + 1 ;
while ( r - l > 3 ) {
int mid = ( l + r ) / 2 ;
if ( f ( mid ) == true ) { r = mid ; }
else { l = mid ; }
}
while ( f ( l ) == false ) { l ++ ; }
int i ;
for ( i = 0 ; i < n ; i ++ ) {
aux[ i ] = 0 ;
}
for ( i = 0 ; i < id - 1 ; i ++ ) {
aux[ ret[ i ] - 1 ] = 1 ;
}
for ( i = 0 ; i < n ; i ++ ) {
if ( aux[ i ] != 0 ) { continue ; }
l -- ;
if ( l == 0 ) {
unite ( i + 1 ) ;
return ;
}
}
}
void Solve ( int N ) {
n = N ;
ret.clear ( ) ;
ret.push_back ( 1 ) ;
aux.resize ( n ) ;
int i ;
for ( i = 0 ; i < n ; i ++ ) { aux[ i ] = 0 ; }
for ( i = 2 ; i <= n ; i ++ ) {
add ( i ) ;
}
Answer ( ret ) ;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |