Submission #744077

#TimeUsernameProblemLanguageResultExecution timeMemory
744077boyliguanhanLast supper (IOI12_supper)C++17
0 / 100
351 ms15448 KiB
#include "advisor.h" #include<bits/stdc++.h> using namespace std; void ComputeAdvice(int *C, int N, int K, int M) { int res[N], last[N], nxt[N], s[K], where[N]; iota(s, s+K, 0); iota(where, where+K, 0); priority_queue<pair<int, int>> q; memset(last, 1, sizeof last); for(int i = N; i--;) nxt[i] = last[C[i]], last[C[i]] = i; bool on[N]; memset(on, 0, sizeof on); for(int i = 0; i < K; i++) q.push({last[i], i}), on[i] = 1; for(int i = 0; i < N; i++) { int col = C[i]; if(!on[col]) { int x = q.top().second; on[x] = 0; res[i] = where[x]; s[where[x]] = col; where[col] = where[x]; q.pop(); q.push({nxt[i], col}); on[col] = 1; } else res[i] = K; } int bits = log2(K)+1; for(int i = 0; i < N; i++) for(int j = 0; j < bits; j++) WriteAdvice((bool)(res[i]&1<<j)); }
#include "assistant.h" #include<bits/stdc++.h> using namespace std; void Assist(unsigned char *A, int N, int K, int R) { priority_queue<pair<int, int>> q; int last[N], nxt[N]; memset(last, 1, sizeof last); int C[N], bits = log2(K)+1; memset(C, 0, sizeof C); for(int i = 0; i < N; i++) for(int j = 0; j < bits; j++) C[i]|=(int)A[i*bits+j] << j; int scaffold[K]; iota(scaffold, scaffold+K, 0); for(int i = 0; i < N; i++) { int x = GetRequest(); if(C[i]<K) PutBack(scaffold[C[i]]), scaffold[C[i]] = x; } }

Compilation message (stderr)

assistant.cpp: In function 'void Assist(unsigned char*, int, int, int)':
assistant.cpp:8:16: warning: unused variable 'nxt' [-Wunused-variable]
    8 |   int last[N], nxt[N];
      |                ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...