# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
132921 | arthurconmy | 최후의 만찬 (IOI12_supper) | C++14 | 270 ms | 12376 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "advisor.h"
using namespace std;
void ComputeAdvice(int *C, int n, int k, int m)
{
for(int i=0; i<n; i++)
{
for(int b=0; b<13; b++)
{
if(1<<b & C[i] != 0) WriteAdvice(1);
else WriteAdvice(0);
}
}
}
#include <bits/stdc++.h>
#include "assistant.h"
using namespace std;
const int INF = 10000000;
void Assist(unsigned char *A, int n, int k, int r)
{
vector<int> C;
for(int i=0; i<n; i++)
{
int cur=0;
for(int b=0; b<13; b++)
{
if(A[i*13 + b]=='1') cur += 1<<b;
}
C.push_back(cur);
}
// now we actually have to use the optimal strat ...
vector<bool> on_scaff(n+1);
for(int i=0; i<k; i++) on_scaff[i]=1;
priority_queue<pair<int,int>> scaff;
vector<int> next_col_occ(n+1,INF);
vector<int> next_occ(n+1,INF);
for(int i=n-1; i>=0; i--)
{
// if(i<k) scaff.push({next_col_occ[C[i]],C[i]});
next_occ[i]=next_col_occ[C[i]];
next_col_occ[C[i]]=i;
}
for(int i=0; i<k; i++) scaff.push({next_col_occ[i],i});
int ans=0;
for(int i=0; i<n; i++)
{
int do_nothing = GetRequest();
if(on_scaff[C[i]]) continue;
else
{
ans++;
PutBack(C[scaff.top().second]);
on_scaff[C[scaff.top().second]]=0;
scaff.pop();
on_scaff[C[i]]=1;
scaff.push({next_occ[i],C[i]});
}
}
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |