Submission #744051

#TimeUsernameProblemLanguageResultExecution timeMemory
744051boyliguanhanLast supper (IOI12_supper)C++17
0 / 100
1348 ms2984 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]; iota(s, s+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; for(int j = 0; j < K; j++) if(s[j]==x) res[i] = j, s[j] = col; 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(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...