답안 #247554

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
247554 2020-07-11T16:04:31 Z Pajaraja 최후의 만찬 (IOI12_supper) C++17
0 / 100
177 ms 13168 KB
#include <bits/stdc++.h>
#define MAXN 100007
#include "advisor.h"
using namespace std;
static set<pair<pair<int,int>, int> > s;
static set<int> sk;
static int nxt[MAXN],lst[MAXN],cnt[MAXN],br=0,d[MAXN];
void ComputeAdvice(int *C, int N, int K, int M) 
{
	fill(lst,lst+N,N);
	for(int i=N-1;i>=0;i--) {nxt[i]=lst[C[i]]; lst[C[i]]=i;}
	for(int i=0;i<K;i++) {s.insert({{lst[i],i},br++}); sk.insert(i);}
	for(int i=0;i<N;i++)
	{
		int a=C[i];
		if(sk.find(a)!=sk.end()) 
		{
			cnt[a]++;
			pair<pair<int,int>,int> p=*s.lower_bound({{i,a},0});
			s.erase(p);
			p.first.first=nxt[i];
			s.insert(p);
		}
		else
		{
			set<pair<pair<int,int>,int> >::iterator it=s.end();
			it--;
			pair<pair<int,int>,int> p=*it;
			s.erase(p); sk.erase(p.first.second);
			d[p.second]=cnt[p.first.second]; cnt[p.first.second]=0;
			p={{nxt[i],a},br++};
			s.insert(p); sk.insert(a);
		}
	}
	for(set<pair<pair<int,int>,int> >::iterator it=s.begin();it!=s.end();it++)
	{
		pair<pair<int,int>,int> p=*it;
		d[p.second]=cnt[p.first.second];	
	}
	for(int i=0;i<br;i++) 
	{
		for(int j=0;j<d[i];j++) WriteAdvice(1);
		WriteAdvice(0);
	}
}
#include <bits/stdc++.h>
#define MAXN 100007
#include "assistant.h"
using namespace std;
static vector<int> d;
static queue<int> q;
static int cnt[MAXN];
void Assist(unsigned char *A, int N, int K, int R) 
{
	int t=0,p=0;
	for(int i=0;i<N;i++)
	{
		if(A[i]==1) t++;
		else {d.push_back(t); t=0;}
	}
	for(int i=0;i<K;i++) {cnt[i]=d[p++]; if(cnt[i]==0) q.push(i);}
	for(int i=0;i<N;i++)
	{
		int r=GetRequest();
		if(cnt[r]!=0) {cnt[r]--; if(cnt[r]==0) q.push(r);}
		else
		{
			cnt[r]=d[p++];
			PutBack(q.front());
			q.pop();
			if(cnt[r]==0) q.push(r);
		}
	}
}
# 결과 실행 시간 메모리 Grader output
1 Correct 10 ms 1016 KB Output is correct
2 Incorrect 10 ms 1032 KB Error - Putting back a color when it is already on the scaffold
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 21 ms 1792 KB Error - Putting back a color when it is already on the scaffold
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 138 ms 10480 KB Error - Putting back a color when it is already on the scaffold
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 13 ms 1300 KB Error - Putting back a color when it is already on the scaffold
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 162 ms 12120 KB Error - Putting back a color when it is already on the scaffold
2 Incorrect 167 ms 12224 KB Error - Putting back a color when it is already on the scaffold
3 Incorrect 165 ms 13040 KB Error - Putting back a color when it is already on the scaffold
4 Incorrect 169 ms 13040 KB Error - Putting back a color when it is already on the scaffold
5 Incorrect 162 ms 13040 KB Error - Putting back a color when it is already on the scaffold
6 Incorrect 169 ms 13040 KB Error - Putting back a color when it is already on the scaffold
7 Incorrect 176 ms 13040 KB Error - Putting back a color when it is already on the scaffold
8 Incorrect 162 ms 13040 KB Error - Putting back a color when it is already on the scaffold
9 Incorrect 177 ms 13168 KB Error - Putting back a color when it is already on the scaffold
10 Correct 151 ms 13048 KB Output is correct - 125000 bits used