# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
44337 | 2018-03-31T11:56:00 Z | chonka | Library (JOI18_library) | C++14 | 539 ms | 704 KB |
#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 ; int h = ( n - id + 1 ) ; while ( l <= r ) { int mid = ( l + r ) / 2 ; if ( f ( mid ) == true ) { r = mid - 1 ; h = mid ; } else { l = mid + 1 ; } } 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 ; } h -- ; if ( h == 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 ) ; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 34 ms | 248 KB | Output is correct |
2 | Correct | 45 ms | 336 KB | Output is correct |
3 | Correct | 43 ms | 472 KB | Output is correct |
4 | Correct | 42 ms | 472 KB | Output is correct |
5 | Correct | 40 ms | 472 KB | Output is correct |
6 | Correct | 38 ms | 472 KB | Output is correct |
7 | Correct | 62 ms | 496 KB | Output is correct |
8 | Correct | 48 ms | 496 KB | Output is correct |
9 | Correct | 43 ms | 532 KB | Output is correct |
10 | Correct | 21 ms | 532 KB | Output is correct |
11 | Correct | 2 ms | 532 KB | Output is correct |
12 | Correct | 2 ms | 532 KB | Output is correct |
13 | Correct | 2 ms | 532 KB | Output is correct |
14 | Correct | 2 ms | 532 KB | Output is correct |
15 | Correct | 4 ms | 532 KB | Output is correct |
16 | Correct | 3 ms | 532 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 34 ms | 248 KB | Output is correct |
2 | Correct | 45 ms | 336 KB | Output is correct |
3 | Correct | 43 ms | 472 KB | Output is correct |
4 | Correct | 42 ms | 472 KB | Output is correct |
5 | Correct | 40 ms | 472 KB | Output is correct |
6 | Correct | 38 ms | 472 KB | Output is correct |
7 | Correct | 62 ms | 496 KB | Output is correct |
8 | Correct | 48 ms | 496 KB | Output is correct |
9 | Correct | 43 ms | 532 KB | Output is correct |
10 | Correct | 21 ms | 532 KB | Output is correct |
11 | Correct | 2 ms | 532 KB | Output is correct |
12 | Correct | 2 ms | 532 KB | Output is correct |
13 | Correct | 2 ms | 532 KB | Output is correct |
14 | Correct | 2 ms | 532 KB | Output is correct |
15 | Correct | 4 ms | 532 KB | Output is correct |
16 | Correct | 3 ms | 532 KB | Output is correct |
17 | Correct | 539 ms | 568 KB | Output is correct |
18 | Correct | 511 ms | 568 KB | Output is correct |
19 | Correct | 448 ms | 568 KB | Output is correct |
20 | Correct | 438 ms | 568 KB | Output is correct |
21 | Correct | 433 ms | 572 KB | Output is correct |
22 | Correct | 531 ms | 572 KB | Output is correct |
23 | Correct | 534 ms | 704 KB | Output is correct |
24 | Correct | 180 ms | 704 KB | Output is correct |
25 | Correct | 538 ms | 704 KB | Output is correct |
26 | Correct | 426 ms | 704 KB | Output is correct |
27 | Correct | 184 ms | 704 KB | Output is correct |
28 | Correct | 442 ms | 704 KB | Output is correct |
29 | Correct | 464 ms | 704 KB | Output is correct |
30 | Correct | 466 ms | 704 KB | Output is correct |