# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
848081 | urd05 | 최후의 만찬 (IOI12_supper) | C++17 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "assistant.h"
#include <bits/stdc++.h>
using namespace std;
bool save[100000];
bool isin[100000];
set<int> s;
int n,k,r;
void Assist(unsigned char *A, int N, int K, int R) {
int i;
n=N;
k=K;
r=R;
for(int i=0;i<k;i++) {
isin[i]=true;
if (A[i]=='1') {
save[i]=true;
}
else {
s.insert(i);
}
}
for (i = 0; i < N; i++) {
int req = GetRequest();
if (!isin[req]) {
int now=*s.begin();
s.erase(now);
PutBack(now);
isin[now]=false;
isin[req]=true;
}
save[req]=(A[i+k]=='1');
s.erase(req);
if (!save[req]) {
s.insert(req);
}
}
}
#include "assistant.h"
#include <bits/stdc++.h>
using namespace std;
bool save[100000];
bool isin[100000];
set<int> s;
int n,k,r;
void Assist(unsigned char *A, int N, int K, int R) {
int i;
n=N;
k=K;
r=R;
for(int i=0;i<k;i++) {
isin[i]=true;
if (A[i]=='1') {
save[i]=true;
}
else {
s.insert(i);
}
}
for (i = 0; i < N; i++) {
int req = GetRequest();
if (!isin[req]) {
int now=*s.begin();
s.erase(now);
PutBack(now);
isin[now]=false;
isin[req]=true;
}
save[req]=(A[i+k]==1);
s.erase(req);
if (!save[req]) {
s.insert(req);
}
}
}