Submission #219628

# Submission time Handle Problem Language Result Execution time Memory
219628 2020-04-05T20:31:56 Z MarcoMeijer Last supper (IOI12_supper) C++14
0 / 100
326 ms 286952 KB
#include "advisor.h"
#include <bits/stdc++.h>
using namespace std;

//macros
typedef long long ll;
typedef pair<int, int> ii;
typedef tuple<int, int, int> iii;
typedef vector<int> vi;
typedef vector<ii> vii;
typedef vector<iii> viii;
typedef vector<ll> vll;
#define REP(a,b,c) for(int a=int(b); a<int(c); a++)
#define RE(a,c) REP(a,0,c)
#define RE1(a,c) REP(a,1,c+1)
#define REI(a,b,c) REP(a,b,c+1)
#define REV(a,b,c) for(int a=int(c-1); a>=int(b); a--)
#define INF 1e9
#define pb push_back
#define fi first
#define se second
#define sz size()

const int MX = 2e5;
queue<int> nxt[MX];
set<int> onShelf;
priority_queue<ii> pq;
map<int, int> last;
vi ans;
vi shelf;

void ComputeAdvice(int *C, int N, int K, int M) {
  RE(i,N) nxt[C[i]].push(i);
  RE(i,N) nxt[i].push(N);
  ans.assign(K+N,0);
  RE(i,K) {
    onShelf.insert(i);
    pq.push({nxt[i].front(), i});
    last[i] = i;
  }
  RE(i,N) {
    nxt[C[i]].pop();
    last[C[i]] = K+i;
    if(onShelf.count(C[i])) continue;
    ii p = pq.top(); pq.pop();
    ans[last[p.second]] = 1;
    pq.push({nxt[C[i]].front(), C[i]});
  }
  for(int i:ans) WriteAdvice(i);
}
#include "assistant.h"
#include <bits/stdc++.h>
using namespace std;

//macros
typedef long long ll;
typedef pair<int, int> ii;
typedef tuple<int, int, int> iii;
typedef vector<int> vi;
typedef vector<ii> vii;
typedef vector<iii> viii;
typedef vector<ll> vll;
#define REP(a,b,c) for(int a=int(b); a<int(c); a++)
#define RE(a,c) REP(a,0,c)
#define RE1(a,c) REP(a,1,c+1)
#define REI(a,b,c) REP(a,b,c+1)
#define REV(a,b,c) for(int a=int(c-1); a>=int(b); a--)
#define INF 1e9
#define pb push_back
#define fi first
#define se second
#define sz size()

set<int> OnShelf;
queue<int> rem;

void Assist(unsigned char *A, int N, int K, int R) {
  RE(i,K) {
    OnShelf.insert(i);
    if(A[i]) rem.push(i);
  }
  RE(i,N) {
    int req = GetRequest();
    if(!OnShelf.count(req)) {
      PutBack(rem.front());
      OnShelf.erase(rem.front()); rem.pop();
      OnShelf.insert(req);
    }
    if(A[K+i]) rem.push(req);
  }
}
# Verdict Execution time Memory Grader output
1 Runtime error 94 ms 269808 KB Memory limit exceeded (if you are sure your verdict is not MLE, please contact us)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 108 ms 271088 KB Memory limit exceeded (if you are sure your verdict is not MLE, please contact us)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 259 ms 280808 KB Memory limit exceeded (if you are sure your verdict is not MLE, please contact us)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 103 ms 270320 KB Memory limit exceeded (if you are sure your verdict is not MLE, please contact us)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 314 ms 282696 KB Memory limit exceeded (if you are sure your verdict is not MLE, please contact us)
2 Runtime error 300 ms 283368 KB Memory limit exceeded (if you are sure your verdict is not MLE, please contact us)
3 Runtime error 310 ms 283880 KB Memory limit exceeded (if you are sure your verdict is not MLE, please contact us)
4 Runtime error 302 ms 284136 KB Memory limit exceeded (if you are sure your verdict is not MLE, please contact us)
5 Runtime error 326 ms 283880 KB Memory limit exceeded (if you are sure your verdict is not MLE, please contact us)
6 Runtime error 309 ms 283880 KB Memory limit exceeded (if you are sure your verdict is not MLE, please contact us)
7 Runtime error 315 ms 284392 KB Memory limit exceeded (if you are sure your verdict is not MLE, please contact us)
8 Runtime error 302 ms 284400 KB Memory limit exceeded (if you are sure your verdict is not MLE, please contact us)
9 Runtime error 309 ms 284000 KB Memory limit exceeded (if you are sure your verdict is not MLE, please contact us)
10 Runtime error 301 ms 286952 KB Memory limit exceeded (if you are sure your verdict is not MLE, please contact us)