Submission #170066

#TimeUsernameProblemLanguageResultExecution timeMemory
170066triLast supper (IOI12_supper)C++14
0 / 100
214 ms141552 KiB
#include <bits/stdc++.h> #include "advisor.h" using namespace std; typedef long long ll; typedef long double ld; typedef pair<int, int> pi; typedef pair<ll, ll> pl; typedef vector<int> vi; typedef vector<ld> vd; typedef vector<ll> vl; #define pb push_back #define f first #define s second const int MAXN = 1e5; queue<int> nUse[MAXN]; void ComputeAdvice(int *C, int N, int K, int M) { vi used(2 * N, 0); vi tInsert(N, 0); vi contain(N, 0); int nTInsert = K; for (int i = 0; i < N; i++) { nUse[C[i]].push(i); } for (int cC = 0; cC < N; cC++) { nUse[cC].push(N); } priority_queue<pi> allNext; for (int cC = 0; cC < K; cC++) { allNext.push({nUse[cC].front(), cC}); contain[cC] = true; tInsert[cC] = cC; } for (int i = 0; i < N; i++) { int cC = C[i]; nUse[cC].pop(); if (contain[cC]) { used[tInsert[cC]] = true; } else { pi furtUse = allNext.top(); allNext.pop(); contain[furtUse.s] = false; allNext.push({nUse[cC].front(), cC}); contain[cC] = true; tInsert[cC] = nTInsert++; } } for (int i = 0; i < 2 * N; i++) { WriteAdvice(used[i]); } }
#include <bits/stdc++.h> #include "assistant.h" using namespace std; typedef long long ll; typedef long double ld; typedef pair<int, int> pi; typedef pair<ll, ll> pl; typedef vector<int> vi; typedef vector<ld> vd; typedef vector<ll> vl; #define pb push_back #define f first #define s second const int MAXN = 1e5; void Assist(unsigned char *data, int N, int K, int R) { queue<int> unused; vi contain(N, 0); for (int i = 0; i < K; i++) { if (!data[i]) { unused.push(i); } contain[i] = true; } for (int i = 0; i < N; i++) { int cC = GetRequest(); if (contain[cC]) { // do nothing } else { assert(unused.size() > 0); int remC = unused.front(); unused.pop(); contain[remC] = false; PutBack(remC); contain[cC] = true; if (!data[i + K]) { unused.push(cC); } } } }
#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...