이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
#include "advisor.h"
#define ll long long
#define pii pair<int,int>
#define F first
#define S second
using namespace std;
int st[100009],th[100009],in[100009],last[100009];
set<int> occ[100009];
set<pii> nw;
const int inf = 1000000;
void ComputeAdvice(int *C, int N, int K, int M) {
int i,j,k;
for(i = 0;i < N;i++)
{
occ[C[i]].insert(i);
last[i] = -1;
}
for(i = 0;i < N;i++)
{
occ[i].insert(inf);
}
for(i = 0;i < K;i++)
{
in[i] = 1;
nw.insert({*occ[i].begin(),i});
}
for(i = 0;i < N;i++)
{
last[C[i]] = i;
if(in[C[i]] == 1)
{
auto p = nw.lower_bound({i,C[i]});
pii t = {*occ[i].upper_bound(i),C[i]};
nw.erase(p);
nw.insert(t);
continue;
}
auto u = prev(nw.end());
if(last[u->S] == -1)
{
st[u->S] = 1;
}
else
{
th[last[u->S]] = 1;
}
pii t = {*occ[i].upper_bound(i),C[i]};
nw.erase(u);
nw.insert(t);
}
for(auto x : nw)
{
if(last[x.S] == -1)
{
st[x.S] = 1;
}
else
{
th[last[x.S]] = 1;
}
}
for(i = 0;i < N;i++)
{
if(st[i] == 0)WriteAdvice(0);
else WriteAdvice(1);
}
for(i = 0;i < N;i++)
{
if(th[i] == 0)WriteAdvice(0);
else WriteAdvice(1);
}
}
#include<bits/stdc++.h>
#include "assistant.h"
#define ll long long
#define pii pair<int,int>
#define F first
#define S second
using namespace std;
set<int> ok;
int C[100009];
set<int> inn;
void Assist(unsigned char *A, int N, int K, int R) {
int i,k;
for(i = 0;i < N;i++)
{
cin >> k;
if(k == 1 && i < k)
{
ok.insert(i);
}
}
for(i = 0;i < K;i++)inn.insert(i);
for(i = 0;i < N;i++)
{
C[i] = GetRequest();
if(!inn.count(C[i]))
{
PutBack((int)(*ok.begin()));
inn.erase(*ok.begin());
ok.erase(*ok.begin());
inn.insert(C[i]);
}
if(A[N+i] == 1) ok.insert(C[i]);
if(A[N+i] == 0 && ok.count(C[i])) ok.erase(C[i]);
}
}
컴파일 시 표준 에러 (stderr) 메시지
advisor.cpp: In function 'void ComputeAdvice(int*, int, int, int)':
advisor.cpp:13:11: warning: unused variable 'j' [-Wunused-variable]
13 | int i,j,k;
| ^
advisor.cpp:13:13: warning: unused variable 'k' [-Wunused-variable]
13 | int i,j,k;
| ^
# | 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... |