답안 #532260

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
532260 2022-03-02T15:27:49 Z christinelynn 사육제 (CEOI14_carnival) C++17
0 / 100
8 ms 200 KB
#include <bits/stdc++.h>
using namespace std;

int main(){
  cin.tie(0) -> ios_base::sync_with_stdio(0);

  int n;
  cin >> n;
  vector<int> a(n + 1), q(n + 1);
  auto ask = [&](int l, int r) -> int {
    cout << r - l + 1 << " ";
    for(int i=l;i<=r;i++)
    {
      cout << i << " ";
    }
    cout << endl;
    int ret;
    cin >> ret;
    return ret;
  };
  auto ask2 = [&](int l, int r, int x) -> int{
    cout << r - l + 2 << " " << x << " ";
    for(int i=l;i<=r;i++)
    {
      cout << q[i] << " ";
    }
    cout << endl;
    int ret;
    cin >> ret;
    return ret;
  };
  for(int i=1,cur=0;i<=n;i++)
  {
    // cout << ":: " << i << " " << cur << endl;
    // cout << "! ";
    // for(int i=1;i<=cur;i++)
    // {
    //   cout << q[i] << " ";
    // }
    // cout << endl;
    int t = ask(1, i);
    if(t > cur)
    {
      cur++;
      q[cur] = i;
      a[i] = cur;
    }
    else
    {
      int l = 1, r = cur, ans = -1;
      while(l <= r){
        int mid = (l + r) / 2;
        if(ask2(l, mid, i) < mid - l + 2)
        {
          r = mid - 1, ans = mid;
        }
        else
        {
          l = mid + 1;
        }
      }
      // cout << "binser : " << ans << endl;
      assert(ans != -1);
      a[i] = q[ans];
    }
  }  
  cout << "0 ";
  for(int i=1;i<=n;i++)
  {
    cout << a[i] << " ";
    assert(a[i] > 0);
  }
  cout << endl;
  
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 200 KB Integer 19 violates the range [1, 11]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 6 ms 200 KB Integer 6 violates the range [1, 5]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 200 KB Output is correct
2 Incorrect 7 ms 200 KB Integer 11 violates the range [1, 8]
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 200 KB Integer 5 violates the range [1, 4]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 200 KB Output is correct
2 Incorrect 8 ms 200 KB Integer 22 violates the range [1, 17]
3 Halted 0 ms 0 KB -