답안 #974536

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
974536 2024-05-03T12:30:32 Z LCJLY Hidden Sequence (info1cup18_hidden) C++14
100 / 100
3 ms 700 KB
#include <bits/stdc++.h>
#include "grader.h"

using namespace std;

//code
#define show(x,y) cout << y << " " << #x << endl;
#define show2(x,y,i,j) cout << y << " " << #x << "  " << j << " " << #i << endl;
#define show3(x,y,i,j,p,q) cout << y << " " << #x << "  " << j << " " << #i << "  " << q << " " << #p << endl;
#define show4(x,y) for(auto it:y) cout << it << " "; cout << #x << endl;
typedef pair<long long,long long>pii;
typedef pair<int,pii>pi2;
//isSubsequence()
vector<int> findSequence(int n){
	int half=n/2;
	vector<int>v;
	for(int x=0;x<half+1;x++){
		v.push_back(0);
	}
	
	bool hold=isSubsequence(v);
	int flip=0;
	if(hold){
		flip=1;
	}
	
	//flip = 1 means 1 is minority
	//flip = 0 means 0 is minority
	
	v.clear();
	while(isSubsequence(v)){
		v.push_back(0^flip);
	}
	v.pop_back();
	
	//zero is the minority
	vector<int>ans;
	int cnt=v.size();
	int l=0; //cnt zero to the left
	//show(flip,flip);
	for(int x=0;x<n;x++){
		//put 1
		vector<int>temp;
		for(int y=0;y<x-l;y++){
			temp.push_back(1^flip);
		}
		temp.push_back(1^flip);
		for(int y=0;y<cnt;y++){
			temp.push_back(0^flip);
		}
		 
		//put 0
		vector<int>temp2;
		for(int y=0;y<l;y++){
			temp2.push_back(0^flip);
		}
		temp2.push_back(0^flip);
		//show(n-x-cnt+1,n-x-cnt+1);
		for(int y=0;y<n-x-cnt;y++){
			temp2.push_back(1^flip);
		}
		
		//show(x,x);
		//show4(temp,temp);
		//show4(temp2,temp2);

		if((int)temp.size()<=half+1){
			bool amos=isSubsequence(temp);
			if(amos){
				ans.push_back(1^flip);	
			}
			else{
				ans.push_back(0^flip);
				cnt--;
				l++;
			}
		}
		else{
			bool amos=isSubsequence(temp2);
			if(amos){
				ans.push_back(0^flip);
				cnt--;
				l++;
			}
			else{
				ans.push_back(1^flip);
			}
		}
	}
	return ans;
}

//code

Compilation message

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
grader.cpp:29:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   29 |     for (int i=0; i<ans.size () && i < N; i++)
      |                   ~^~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct: Maximum length of a query = 5
2 Correct 1 ms 344 KB Output is correct: Maximum length of a query = 6
3 Correct 1 ms 344 KB Output is correct: Maximum length of a query = 5
4 Correct 0 ms 596 KB Output is correct: Maximum length of a query = 5
5 Correct 1 ms 344 KB Output is correct: Maximum length of a query = 4
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 436 KB Output is correct: Maximum length of a query = 83
2 Correct 3 ms 432 KB Output is correct: Maximum length of a query = 90
3 Correct 3 ms 436 KB Output is correct: Maximum length of a query = 96
4 Correct 2 ms 600 KB Output is correct: Maximum length of a query = 77
5 Correct 3 ms 440 KB Output is correct: Maximum length of a query = 95
6 Correct 2 ms 436 KB Output is correct: Maximum length of a query = 87
7 Correct 3 ms 436 KB Output is correct: Maximum length of a query = 97
8 Correct 2 ms 696 KB Output is correct: Maximum length of a query = 83
9 Correct 3 ms 436 KB Output is correct: Maximum length of a query = 101
10 Correct 3 ms 700 KB Output is correct: Maximum length of a query = 100
11 Correct 3 ms 432 KB Output is correct: Maximum length of a query = 96
12 Correct 3 ms 692 KB Output is correct: Maximum length of a query = 100
13 Correct 3 ms 432 KB Output is correct: Maximum length of a query = 101