# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
933393 | 2024-02-25T15:40:15 Z | thunopro | 도서관 (JOI18_library) | C++14 | 0 ms | 0 KB |
#include<bits/stdc++.h> using namespace std ; #define maxn 200009 #define ll long long #define pb push_back #define fi first #define se second #define left id<<1 #define right id<<1|1 #define re exit(0); #define _lower(x) lower_bound(v.begin(),v.end(),x)-v.begin()+1 const int mod = 1e9+7 ; const int INF = 1e9 ; typedef vector<int> vi ; typedef pair<int,int> pii ; typedef vector<pii> vii ; template < typename T > void chkmin ( T &a , T b ) { if ( a > b ) a = b ; } template < typename T > void chkmax ( T &a , T b ) { if ( a < b ) a = b ; } void add ( int &a , int b ) { a += b ; if ( a >= mod ) a -= mod ; if ( a < 0 ) a += mod ; } void rf () { freopen ("bai1.inp","r",stdin) ; } int _pow ( int a , int n ) { if ( n == 0 ) return 1 ; int res = _pow (a,n/2) ; if ( n % 2 ) return 1ll*res*res%mod*a%mod ; else return 1ll*res*res%mod ; } //int main () //{ // ios_base::sync_with_stdio(0); // cin.tie(0);cout.tie(0); //// rf () ; //} #include "library.h" int n ; vi adjList [maxn] ; void Solve ( int N ) { n = N ; for ( int i = 0 ; i < n ; i ++ ) adjList [i] . clear () ; for ( int i = 0 ; i < n ; i ++ ) { for ( int j = i+1 ; j < n ; j ++ ) { vi M ; for ( int r = 0 ; r < n ; r ++ ) { if ( r == i || r == j ) M . pb (1) ; else M . pb (0) ; } if ( query (M) == 1 ) adjList [i] . pb (j) , adjList [j] . pb (i) ; } } vi res ; set<int> S ; for ( int i = 0 ; i < n ; i ++ ) { if ( adjList[i].size() == 1 ) { S.insert(i) ; res . pb (i) ; break ; } } for ( int i = 1 ; i < n ; i ++ ) { int x = res.back() ; for ( auto y : adjList [x] ) { if ( !S.count(y) ) res . pb (y) , S.insert(y) ; } } for ( auto &x : res ) x ++ ; Answer(res) ; }