답안 #132903

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
132903 2019-07-19T23:09:51 Z arthurconmy 최후의 만찬 (IOI12_supper) C++14
컴파일 오류
0 ms 0 KB
#include <bits/stdc++.h>

#ifndef ARTHUR_LOCAL
	#include "advisor.h"
#endif

using namespace std;

void WriteAdvice(int n)
{
	cout << n << endl;
}

void ComputeAdvice(int *C, int n, int k, int m)
{
	for(int i=0; i<n; i++)
	{
		for(int b=0; b<13; b++)
		{
			if(1<<b & C[i]) WriteAdvice(1);
			else WriteAdvice(0);
		}
	}
}

int C[4];

int main()
{
	vector<int> to_c = {2,0,3,0};

	for(int i=0; i<4; i++) C[i]=to_c[i];

	ComputeAdvice(C,4,2,100);
}
#include <bits/stdc++.h>

#ifndef ARTHUR_LOCAL
	#include "assistant.h"
#endif

using namespace std;

const int INF = 1000000000;

#ifdef ARTHUR_LOCAL

	void PutBack(int n)
	{
		cout << n << endl;
	}

	int GetRequest()
	{
		return 69;
	}

#endif

void Assist(unsigned char *A, int n, int k, int r)
{
	vector<int> C;

	for(int i=0; i<n; i++)
	{
		int cur=0;

		for(int b=0; b<13; b++)
		{
			if(A[i*13 + b]=='1') cur += 1<<b;
		}

		C.push_back(cur);
	}

	// now we actually have to use the optimal strat ...

	vector<bool> on_scaff(n+1);

	for(int i=0; i<k; i++) on_scaff[i]=1;

	priority_queue<pair<int,int>> scaff;

	vector<int> next_col_occ(n+1,INF);
	vector<int> next_occ(n+1,INF);

	for(int i=n-1; i>=0; i--)
	{
		// if(i<k) scaff.push({next_col_occ[C[i]],C[i]});
		next_occ[i]=next_col_occ[C[i]];
		next_col_occ[C[i]]=i;
	}

	for(int i=0; i<k; i++) scaff.push({next_col_occ[i],i});

	int ans=0;

	for(int i=0; i<n; i++)
	{
		int do_nothing = GetRequest();

		if(on_scaff[C[i]]) continue;

		else
		{			
			ans++;

			PutBack(scaff.top().second);
			on_scaff[scaff.top().second]=0;
			scaff.pop();
		
			on_scaff[C[i]]=1;
			scaff.push({next_occ[i],C[i]});
		}
	}
}

#ifdef ARTHUR_LOCAL

	int main()
	{
		unsigned char A[52];
		A[1]='1';
		A[26]='1';
		A[27]='1';

		Assist(A,4,2,52);
	}

#endif

Compilation message

/tmp/ccA4kg0u.o: In function `main':
advisor.cpp:(.text.startup+0x0): multiple definition of `main'
/tmp/ccs5EQlw.o:advisor_grader.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status

assistant.cpp: In function 'void Assist(unsigned char*, int, int, int)':
assistant.cpp:65:7: warning: unused variable 'do_nothing' [-Wunused-variable]
   int do_nothing = GetRequest();
       ^~~~~~~~~~