제출 #127411

#제출 시각아이디문제언어결과실행 시간메모리
127411E869120Hidden Sequence (info1cup18_hidden)C++14
59 / 100
13 ms400 KiB
#include <iostream>
#include <vector>
#include "grader.h"
using namespace std;

int sum[109];

vector<int> findSequence (int N) {
	int zero = 0, one = 0;
	for (int i = 1; i <= (N + 1) / 2; i++) {
		vector<int> L0(i, 0); if (isSubsequence(L0) == true) zero++;
		vector<int> L1(i, 1); if (isSubsequence(L1) == true) one++;
	}
	if (zero < one) one = N - zero;
	else zero = N - one;
	
	if (zero < one) {
		for (int i = 0; i <= zero; i++) {
			for (int j = 1; j <= (one / 2) + 1; j++) {
				vector<int>vec;
				for (int k = 0; k <= zero; k++) {
					if (i == k) {
						for (int l = 0; l < j; l++) vec.push_back(1);
					}
					if (k < zero) vec.push_back(0);
				}
				if (isSubsequence(vec) == true) sum[i] = j;
				else break;
			}
			if (sum[i] == (one / 2) + 1) sum[i] = -1;
		}
		int rem = one;
		for (int i = 0; i <= zero; i++) { if (sum[i] != -1) rem -= sum[i]; }
		for (int i = 0; i <= zero; i++) { if (sum[i] == -1) sum[i] = rem; }

		vector<int>ans;
		for (int i = 0; i <= zero; i++) {
			for (int j = 0; j < sum[i]; j++) ans.push_back(1);
			if (i < zero) ans.push_back(0);
		}
		return ans;
	}
	else {
		for (int i = 0; i <= one; i++) {
			for (int j = 1; j <= (zero / 2) + 1; j++) {
				vector<int>vec;
				for (int k = 0; k <= one; k++) {
					if (i == k) {
						for (int l = 0; l < j; l++) vec.push_back(0);
					}
					if (k < one) vec.push_back(1);
				}
				if (isSubsequence(vec) == true) sum[i] = j;
				else break;
			}
			if (sum[i] == (zero / 2) + 1) sum[i] = -1;
		}
		int rem = zero;
		for (int i = 0; i <= one; i++) { if (sum[i] != -1) rem -= sum[i]; }
		for (int i = 0; i <= one; i++) { if (sum[i] == -1) sum[i] = rem; }

		vector<int>ans;
		for (int i = 0; i <= one; i++) {
			for (int j = 0; j < sum[i]; j++) ans.push_back(0);
			if (i < one) ans.push_back(1);
		}
		return ans;
	}
}

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

grader.cpp: In function 'int main()':
grader.cpp:28:43: warning: format '%d' expects argument of type 'int', but argument 3 has type 'std::vector<int>::size_type {aka long unsigned int}' [-Wformat=]
     fprintf (fifo_out, "%d\n", ans.size ());
                                ~~~~~~~~~~~^
grader.cpp:29:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i=0; i<ans.size () && i < N; i++)
                   ~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...