답안 #251712

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
251712 2020-07-22T08:37:57 Z tinjyu 최후의 만찬 (IOI12_supper) C++14
0 / 100
297 ms 31092 KB
#include <iostream>
#include <algorithm>
#include "advisor.h"
using namespace std;
long long int maxlen,ans[100005],k,map[100005],in[100005],t[100005],p[100005];
struct node{
	long long int road,id;
}now[1000005];
struct cmp{
	bool operator()(const node &a,const node &b)
	{
		return a.road<b.road;
	}
};
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++)now[i].road=99999999999999999;
	for(int i=0;i<N;i++)
	{
		map[i]=now[C[i]].road;
		now[C[i]].road=i;
	}
	for(int i=0;i<N;i++)p[i]=-1;
	for(int i=0;i<K;i++)
	{
		t[i]=i;
		now[i].id=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)continue;
		else
		{
			pop_heap(now,now+K,cmp());
			p[C[i]]=p[now[K-1].id];
			find(p[C[i]]);
			p[now[K-1].id]=-1;
			now[C[i]].road=map[now[C[i]].road];
			now[K-1].id=C[i];
			push_heap(now,now+K,cmp());
		}
	}
}
#include "assistant.h"
#include <iostream>
using namespace std;
long long int a[1000005],pp=0,malen;
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) {
	long long int now[100005],k,p[100005];
	for(int i=0;i<R;i++)
	{
		//cout<<A[i]<<endl;
		a[i]=A[i];
	}
	k=K;
	long long int x=1;
	while(x<k)
	{
		x*=2;
		malen++;
	}
	for(int i=0;i<N;i++)p[i]=-1;
	for(int i=0;i<k;i++)
	{
		now[i]=i;
		p[i]=i;
	}
	for(int i=0;i<N;i++)
	{
		long long int tmp=GetRequest();
		if(p[tmp]!=-1)
		{
			continue;
		}
		long long int temp=find();
		PutBack(now[temp]);
		p[now[temp]]=-1;
		now[temp]=tmp;
		p[tmp]=temp;
	}
	
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 900 KB Output isn't correct - not an optimal way
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 23 ms 2620 KB Output isn't correct - not an optimal way
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 223 ms 18584 KB Output isn't correct - not an optimal way
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 1028 KB Error - advice is too long
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 297 ms 31092 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Runtime error 292 ms 30844 KB Execution killed with signal 11 (could be triggered by violating memory limits)
3 Runtime error 294 ms 30580 KB Execution killed with signal 11 (could be triggered by violating memory limits)
4 Runtime error 287 ms 30632 KB Execution killed with signal 11 (could be triggered by violating memory limits)
5 Runtime error 296 ms 30804 KB Execution killed with signal 11 (could be triggered by violating memory limits)
6 Runtime error 289 ms 30688 KB Execution killed with signal 11 (could be triggered by violating memory limits)
7 Runtime error 287 ms 30584 KB Execution killed with signal 11 (could be triggered by violating memory limits)
8 Runtime error 278 ms 30616 KB Execution killed with signal 11 (could be triggered by violating memory limits)
9 Runtime error 272 ms 30596 KB Execution killed with signal 11 (could be triggered by violating memory limits)
10 Runtime error 276 ms 30892 KB Execution killed with signal 11 (could be triggered by violating memory limits)