Submission #1358035

#TimeUsernameProblemLanguageResultExecution timeMemory
1358035altern23Hidden Sequence (info1cup18_hidden)C++20
Compilation error
0 ms0 KiB
#include<bits/stdc++.h>
#include "grader.h"

vector <int> findSequence (int N) {
	vector <pair<int, int>> res;
	res.push_back({-1, 0});
	
	int elem;
	
	for (int i = 0; i < 2; i++) {
		vector <int> v;
		for (int j = 1; j <= N/2+1; j++) {
			v.push_back(i);
			if (!isSubsequence(v)) {
				v.pop_back();
				break;
			}
		}
		
		if (v.size() != N/2+1) {
			elem = i;
			for (auto j : v) res.push_back({j, 0});
			break;
		}
	}
	
	ll sum = N-((ll)res.size()-1), cur = res.size();
	
	vector <int> ans;
	
	if (res.size() == 0) {
		for (int i = 1; i <= N; i++) ans.push_back(!elem);
		return ans;
	}
	
	while (true) {
		if (cur == 1) {
			for (int j = 0; j < res.size(); j++) {
				if (res[j].second == 0) {
					vector <pair<int, int>> nxt;
					for (int k = 0; k <= j; k++) nxt.push_back(res[k]);
					for (int k = 1; k <= sum; k++) nxt.push_back({!elem, -1});
					for (int k = j+1; k < (ll)res.size(); k++) nxt.push_back(res[k]);
					res.swap(nxt);
					break;
				}
			}
			break;
		}
			
		ll MN = sum/cur;
				
		// try every index
				
		for (int j = 0; j < res.size(); j++) {
			if (res[j].second == 0) {
				int sz = 0;
				for (int k = 0; k <= MN+1; k++) {
					vector <int> tmp;
					for (int l = 0; l <= j; l++) {
						if (res[l].first == 0) tmp.push_back(res[l].first);
					}
					for (int l = 1; l <= k; l++) tmp.push_back(!elem);
					for (int l = j+1; l < (ll)res.size(); l++) {
						if (res[l].first == 0) tmp.push_back(res[l].first);
					}
					if (isSubsequence(tmp)) sz = k;
					else break;
				}
				
				if (sz != MN+1) {
					vector <pair<int, int>> nxt;
					for (int k = 0; k < j; k++) nxt.push_back(res[k]);
					nxt.push_back({res[j].first, 1});
					for (int k = 1; k <= sz; k++) nxt.push_back({!elem, -1});
					for (int k = j+1; k < (ll)res.size(); k++) nxt.push_back(res[k]);
					sum -= sz;
					cur--;
					res.swap(nxt);
					break;
				}
			}
		}
	}
	
	for (auto i : res) {
		if (i.first != -1) ans.push_back(i.first);
	}
	
	return ans;
}

Compilation message (stderr)

hidden.cpp:4:1: error: 'vector' does not name a type
    4 | vector <int> findSequence (int N) {
      | ^~~~~~
grader.cpp: In function 'int main()':
grader.cpp:28:26: warning: format '%d' expects argument of type 'int', but argument 3 has type 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wformat=]
   28 |     fprintf (fifo_out, "%d\n", ans.size ());
      |                         ~^     ~~~~~~~~~~~
      |                          |              |
      |                          int            std::vector<int>::size_type {aka long unsigned int}
      |                         %ld