답안 #251708

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
251708 2020-07-22T08:29:50 Z tinjyu 최후의 만찬 (IOI12_supper) C++14
0 / 100
293 ms 31104 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,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;
	}
	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 0 ms 1004 KB Output isn't correct - not an optimal way
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 23 ms 2692 KB Output isn't correct - not an optimal way
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 215 ms 18592 KB Output isn't correct - not an optimal way
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 1024 KB Error - advice is too long
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 293 ms 31104 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Runtime error 290 ms 30896 KB Execution killed with signal 11 (could be triggered by violating memory limits)
3 Runtime error 265 ms 30620 KB Execution killed with signal 11 (could be triggered by violating memory limits)
4 Runtime error 270 ms 30836 KB Execution killed with signal 11 (could be triggered by violating memory limits)
5 Runtime error 264 ms 30596 KB Execution killed with signal 11 (could be triggered by violating memory limits)
6 Runtime error 276 ms 30600 KB Execution killed with signal 11 (could be triggered by violating memory limits)
7 Runtime error 274 ms 30856 KB Execution killed with signal 11 (could be triggered by violating memory limits)
8 Runtime error 283 ms 30436 KB Execution killed with signal 11 (could be triggered by violating memory limits)
9 Runtime error 270 ms 30700 KB Execution killed with signal 11 (could be triggered by violating memory limits)
10 Runtime error 273 ms 30676 KB Execution killed with signal 11 (could be triggered by violating memory limits)