제출 #99321

#제출 시각아이디문제언어결과실행 시간메모리
99321MercenaryCarnival (CEOI14_carnival)C++14
100 / 100
31 ms384 KiB
#include<bits/stdc++.h>

using namespace std;
#define taskname ""
#define pb	push_back
#define mp 	make_pair
template<typename TH> void _dbg(const char* sdbg, TH h) { cerr<<sdbg<<"="<<h<<"\n"; }
template<typename TH, typename... TA> void _dbg(const char* sdbg, TH h, TA... t) {
  while(*sdbg != ',')cerr<<*sdbg++; cerr<<"="<<h<<","; _dbg(sdbg+1, t...);
}

#ifdef LOCAL
#define debug(...) _dbg(#__VA_ARGS__, __VA_ARGS__)
#else
#define debug(...) (__VA_ARGS__)
#define cerr if(0)cout
#endif

typedef long double ld;
typedef long long ll;
typedef pair<int,int> ii;
const int maxn = 155;

int n , k;
int nTime = 0 , nPresent[maxn];
int res[maxn];
void ans(int color , int now)
{
    if(nPresent[color] == 0)nPresent[color] = now;
    res[now] = color;
}

int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	if(fopen(taskname".INP","r"))
        freopen(taskname".INP", "r",stdin) ,
        freopen(taskname".OUT", "w",stdout);
    cin >> n;
    for(int i = 1 ; i <= n ; ++i)
    {
        cout << i << " " << flush;
        for(int j = 1 ; j <= i ; ++j)cout << j << " " << flush;
        cout << endl;
        int now;cin >> now;
        if(now > nTime)
            ans(++nTime , i);
        else{
            int l = 1 , h = nTime;
            while(l <= h)
            {
                int mid = l + h >> 1;
                cout << mid + 1 << " " << flush;
                for(int j = 1 ; j <= mid ; ++j)cout << nPresent[j] << " " << flush;
                cout << i << " " << endl;
                cin >> now;
                if(now != mid)l = mid + 1;
                else h = mid - 1;
            }
            ans(l , i);
        }
    }
    cout << 0 << " ";
    for(int i = 1 ; i <= n ; ++i)cout << res[i] << " ";
    cout << flush;
}

컴파일 시 표준 에러 (stderr) 메시지

carnival.cpp: In function 'void _dbg(const char*, TH, TA ...)':
carnival.cpp:9:3: warning: this 'while' clause does not guard... [-Wmisleading-indentation]
   while(*sdbg != ',')cerr<<*sdbg++; cerr<<"="<<h<<","; _dbg(sdbg+1, t...);
   ^~~~~
carnival.cpp:9:37: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'while'
   while(*sdbg != ',')cerr<<*sdbg++; cerr<<"="<<h<<","; _dbg(sdbg+1, t...);
                                     ^~~~
carnival.cpp: In function 'int main()':
carnival.cpp:53:29: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
                 int mid = l + h >> 1;
                           ~~^~~
carnival.cpp:38:44: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
         freopen(taskname".INP", "r",stdin) ,
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
         freopen(taskname".OUT", "w",stdout);
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
carnival.cpp:38:44: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...