Submission #641067

# Submission time Handle Problem Language Result Execution time Memory
641067 2022-09-15T22:50:32 Z ymm Carnival (CEOI14_carnival) C++17
0 / 100
56 ms 464 KB
#include <bits/stdc++.h>
#define Loop(x,l,r) for (ll x = (l); x < (r); ++x)
#define LoopR(x,l,r) for (ll x = (r)-1; x >= (l); --x)
typedef long long ll;
typedef std::pair<int, int> pii;
typedef std::pair<ll , ll > pll;
using namespace std;

const int N = 160;
int ans[N];
int n;

int ask(vector<int> v)
{
	cout << v.size() << ' ';
	for (int x : v)
		cout << x+1 << ' ';
	cout << '\n';
	int ans;
	cin >> ans;
	return ans;
}

void solve(vector<int> v)
{
	int len = v.size();
	if (len == 1)
		return;
	solve(vector<int>(v.begin(), v.begin() + len/2));
	solve(vector<int>(v.begin() + len/2, v.end()));
	vector<vector<int>> cl, cr;
	Loop (i,0,len/2) {
		while (ans[v[i]] >= cl.size())
			cl.emplace_back();
		cl[ans[v[i]]].push_back(v[i]);
	}
	Loop (i,len/2,len) {
		while (ans[v[i]] >= cr.size())
			cr.emplace_back();
		cr[ans[v[i]]].push_back(v[i]);
		ans[v[i]] += cl.size();
	}
	vector<int> rem;
	Loop (i,0,cl.size()) {
		int l = 0, r = cr.size();
		while (l < r) {
			int m = (l + r + 1)/2;
			vector<int> vec;
			vec.push_back(cl[i][0]);
			Loop (j,l,m) vec.push_back(cr[j][0]);
			if (ask(vec) != vec.size())
				r = m-1;
			else
				l = m;
		}
		if (l < cr.size()) {
			for (int x : cr[l])
				ans[x] = i;
			rem.push_back(l + cl.size());
		}
	}
	for (int x : v) {
		ans[x] -= lower_bound(rem.begin(), rem.end(), ans[x]) - rem.begin();
	}
	Loop (i,0,n)
		cerr << ans[i] << ' ';
	cerr << "!\n";
}

int main()
{
	ios::sync_with_stdio(false);
	cin >> n;
	vector<int> vec(n);
	iota(vec.begin(), vec.end(), 0);
	solve(vec);
	cout << "0 ";
	Loop (i,0,n)
		cout << ans[i]+1 << ' ';
	cout << '\n';
}

Compilation message

carnival.cpp: In function 'void solve(std::vector<int>)':
carnival.cpp:33:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   33 |   while (ans[v[i]] >= cl.size())
      |          ~~~~~~~~~~^~~~~~~~~~~~
carnival.cpp:38:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |   while (ans[v[i]] >= cr.size())
      |          ~~~~~~~~~~^~~~~~~~~~~~
carnival.cpp:2:40: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    2 | #define Loop(x,l,r) for (ll x = (l); x < (r); ++x)
      |                                        ^
carnival.cpp:44:2: note: in expansion of macro 'Loop'
   44 |  Loop (i,0,cl.size()) {
      |  ^~~~
carnival.cpp:51:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   51 |    if (ask(vec) != vec.size())
      |        ~~~~~~~~~^~~~~~~~~~~~~
carnival.cpp:56:9: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   56 |   if (l < cr.size()) {
      |       ~~^~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Runtime error 25 ms 452 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 15 ms 464 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 49 ms 332 KB Output is correct
2 Runtime error 13 ms 456 KB Execution killed with signal 11
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 56 ms 456 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 56 ms 336 KB Output is correct
2 Runtime error 36 ms 456 KB Execution killed with signal 11
3 Halted 0 ms 0 KB -