답안 #251707

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
251707 2020-07-22T08:26:30 Z tinjyu 최후의 만찬 (IOI12_supper) C++14
0 / 100
294 ms 31108 KB
#include <iostream>
#include <algorithm>
#include "advisor.h"
using namespace std;
long long int maxlen,ans[1000005],k,map[1000005],in[1000005],t[1000005],p[1000005];
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,malen;
int find()
{
	long long int tmp=0,x=1;
	for(int i=pp+1;i<=pp+malen;i++)
	{
		if(a[i]=='1')tmp+=x;
		x*=2;
	}
	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 1000 KB Output isn't correct - not an optimal way
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 28 ms 2704 KB Output isn't correct - not an optimal way
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 227 ms 18616 KB Output isn't correct - not an optimal way
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 1028 KB Error - advice is too long
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 294 ms 31108 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Runtime error 284 ms 30976 KB Execution killed with signal 11 (could be triggered by violating memory limits)
3 Runtime error 270 ms 30836 KB Execution killed with signal 11 (could be triggered by violating memory limits)
4 Runtime error 278 ms 30464 KB Execution killed with signal 11 (could be triggered by violating memory limits)
5 Runtime error 266 ms 30620 KB Execution killed with signal 11 (could be triggered by violating memory limits)
6 Runtime error 278 ms 30624 KB Execution killed with signal 11 (could be triggered by violating memory limits)
7 Runtime error 287 ms 30948 KB Execution killed with signal 11 (could be triggered by violating memory limits)
8 Runtime error 277 ms 30972 KB Execution killed with signal 11 (could be triggered by violating memory limits)
9 Runtime error 285 ms 30720 KB Execution killed with signal 11 (could be triggered by violating memory limits)
10 Runtime error 277 ms 30740 KB Execution killed with signal 11 (could be triggered by violating memory limits)