Submission #475702

# Submission time Handle Problem Language Result Execution time Memory
475702 2021-09-23T17:23:48 Z ZaZo_ Carnival (CEOI14_carnival) C++14
100 / 100
10 ms 328 KB
#include <bits/stdc++.h>
#define HID ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define int long long
#define all(v) v.begin(),v.end()
const int N = 2010 , INF = 1e15;
using namespace std;
int n , x , all;
int ans[160] = {0};
int check(vector<int>v)
{
  cout<<v.size()<<" ";
  for(int i = 0 ; i < v.size() ; i++) cout<<v[i]<<" ";
  cout<<endl;
  cin >> x;
  return x;
}
int num=2;
int32_t main() {
  //HID
  int maxnum=0;
  cin >> n;
  cout<<n<<" ";
  for(int i = 1 ; i <= n ; i++) cout<<i<<" ";
  cout<<endl;
  cin>>x;
  maxnum=x;
  vector<int>in;
  ans[1]=1;
  in.push_back(1);
  for(int i = 2 ; i <= n ; i++)
  {
    in.push_back(i);
    if(check(in) == in.size()) ans[i] = in.size();
    else
    {
      in.pop_back();
      int l = 0 , r = in.size()-1 , cur=-1;
      while(l<=r)
      {
        int mid = (l+r)/2;
        vector<int>out;
        for(int j = 0 ; j <= mid ; j++) out.push_back(in[j]);
        out.push_back(i);
        if(check(out) == out.size()-1)
          r = mid-1 , cur = mid;
        else l = mid+1;
      }
      //cout<<i <<"!"<< in[cur]<<endl;
      if(cur!=-1)
      {
        ans[i] = ans[in[cur]];
      }
      else
       ans[i] = num , num++;
      if(num>maxnum) num--;
    }
  }

  cout<<"0 ";
  for(int i = 1 ; i <= n ; i++) cout<<ans[i]<<" ";
}

Compilation message

carnival.cpp: In function 'long long int check(std::vector<long long int>)':
carnival.cpp:12:21: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   12 |   for(int i = 0 ; i < v.size() ; i++) cout<<v[i]<<" ";
      |                   ~~^~~~~~~~~~
carnival.cpp: In function 'int32_t main()':
carnival.cpp:33:18: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   33 |     if(check(in) == in.size()) ans[i] = in.size();
      |        ~~~~~~~~~~^~~~~~~~~~~~
carnival.cpp:44:23: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   44 |         if(check(out) == out.size()-1)
      |            ~~~~~~~~~~~^~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 7 ms 200 KB Output is correct
2 Correct 9 ms 296 KB Output is correct
3 Correct 6 ms 200 KB Output is correct
4 Correct 3 ms 200 KB Output is correct
5 Correct 5 ms 200 KB Output is correct
6 Correct 4 ms 200 KB Output is correct
7 Correct 8 ms 200 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 7 ms 200 KB Output is correct
2 Correct 9 ms 200 KB Output is correct
3 Correct 3 ms 296 KB Output is correct
4 Correct 5 ms 328 KB Output is correct
5 Correct 6 ms 200 KB Output is correct
6 Correct 7 ms 264 KB Output is correct
7 Correct 8 ms 200 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 200 KB Output is correct
2 Correct 5 ms 200 KB Output is correct
3 Correct 10 ms 200 KB Output is correct
4 Correct 4 ms 328 KB Output is correct
5 Correct 5 ms 200 KB Output is correct
6 Correct 7 ms 292 KB Output is correct
7 Correct 9 ms 200 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 6 ms 200 KB Output is correct
2 Correct 7 ms 200 KB Output is correct
3 Correct 6 ms 200 KB Output is correct
4 Correct 4 ms 328 KB Output is correct
5 Correct 8 ms 200 KB Output is correct
6 Correct 6 ms 200 KB Output is correct
7 Correct 10 ms 200 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 200 KB Output is correct
2 Correct 8 ms 200 KB Output is correct
3 Correct 7 ms 200 KB Output is correct
4 Correct 8 ms 304 KB Output is correct
5 Correct 5 ms 304 KB Output is correct
6 Correct 5 ms 200 KB Output is correct
7 Correct 4 ms 328 KB Output is correct