답안 #251730

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
251730 2020-07-22T08:54:53 Z tinjyu 최후의 만찬 (IOI12_supper) C++14
0 / 100
272 ms 15676 KB
#include <iostream>
#include <algorithm>
#include "advisor.h"
using namespace std;
long long int road[1000005],maxlen,ans[1000005],k,map[1000005],in[1000005],t[1000005],p[1000005],now[1000005];
struct cmp{
	bool operator()(const int &a,const int &b)
	{
		return road[a]<road[b];
	}
};
void find(long long int x)
{
	for(int i=1;i<=maxlen;i++)
	{
		char tmp;
		if(x%2==0)tmp=0;
		else tmp=1;
		WriteAdvice(tmp);
		//cout<<x%2<<" ";
		x/=2;
	}
	return ;
}
void ComputeAdvice(int *C, int N, int K, int M) {
	k=K;
	long long int x=1;
	while(x<k)
	{
		x*=2;
		maxlen++;
	}
	for(int i=0;i<N;i++)road[i]=100009;
	for(int i=N-1;i>=0;i--)
	{
		map[i]=road[C[i]];
		road[C[i]]=i;
	}
	for(int i=0;i<N;i++)p[i]=-1;
	for(int i=0;i<K;i++)
	{
		t[i]=i;
		now[i]=i;
		p[i]=i;
		push_heap(now,now+i+1,cmp());
	}
	//for(int i=0;i<K;i++)cout<<now[i].id<<" ";
	//cout<<endl;
	for(int i=0;i<N;i++)
	{
		if(p[C[i]]!=-1)
		{
			if(road[C[i]]!=100009)road[C[i]]=map[road[C[i]]];
			continue;
		}
		else
		{
			pop_heap(now,now+K,cmp());
			p[C[i]]=p[now[K-1]];
			find(p[C[i]]);
			p[now[K-1]]=-1;
			road[C[i]]=map[road[C[i]]];
			now[K-1]=C[i];
			push_heap(now,now+K,cmp());
		}
	}
}
#include "assistant.h"
#include <iostream>
using namespace std;
long long int a[100005],pp=0,malen,no[100005],pe[100005];
int find()
{
	long long int tmp=0,x=1;
	for(int i=pp;i<pp+malen;i++)
	{
		if(a[i]=='1')tmp+=x;
		x*=2;
	}
	pp+=malen;
	return tmp;
}
void Assist(unsigned char *A, int N, int K, int R) {
	for(int i=0;i<R;i++)
	{
		//cout<<A[i]<<endl;
		a[i]=A[i];
	}
	int k=K;
	long long int x=1;
	while(x<k)
	{
		x*=2;
		malen++;
	}
	for(int i=0;i<N;i++)pe[i]=-1;
	for(int i=0;i<k;i++)
	{
		no[i]=i;
		pe[i]=i;
	}
	for(int i=0;i<N;i++)
	{
		long long int tmp=GetRequest();
		if(pe[tmp]!=-1)
		{
			continue;
		}
		long long int temp=find();
		PutBack(no[temp]);
		pe[no[temp]]=-1;
		no[temp]=tmp;
		pe[tmp]=temp;
	}
	
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 988 KB Output isn't correct - not an optimal way
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 19 ms 2272 KB Output isn't correct - not an optimal way
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 175 ms 12108 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 1108 KB Error - advice is too long
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 230 ms 14248 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Runtime error 228 ms 14096 KB Execution killed with signal 11 (could be triggered by violating memory limits)
3 Runtime error 215 ms 13896 KB Execution killed with signal 11 (could be triggered by violating memory limits)
4 Runtime error 217 ms 13764 KB Execution killed with signal 11 (could be triggered by violating memory limits)
5 Runtime error 224 ms 13896 KB Execution killed with signal 11 (could be triggered by violating memory limits)
6 Runtime error 218 ms 14148 KB Execution killed with signal 11 (could be triggered by violating memory limits)
7 Runtime error 219 ms 13972 KB Execution killed with signal 11 (could be triggered by violating memory limits)
8 Runtime error 224 ms 13816 KB Execution killed with signal 11 (could be triggered by violating memory limits)
9 Runtime error 220 ms 13820 KB Execution killed with signal 11 (could be triggered by violating memory limits)
10 Runtime error 272 ms 15676 KB Execution killed with signal 11 (could be triggered by violating memory limits)