제출 #105170

#제출 시각아이디문제언어결과실행 시간메모리
105170eriksuenderhauf최후의 만찬 (IOI12_supper)C++11
100 / 100
126 ms9648 KiB
//#pragma GCC optimize("O3") #include <bits/stdc++.h> #include "advisor.h" //#include "grader.h" #define pii pair<int, int> #define pll pair<long long, long long> #define vii vector<pii> #define vi vector<int> #define pb push_back #define mp make_pair #define fi first #define se second using namespace std; typedef long long int ll; const int MAXN = 2e5 + 5; int val[MAXN], ind[MAXN], nx[MAXN], ans[MAXN]; int last[MAXN]; bool mrk[MAXN]; // active -> 0, passive -> 1 void ComputeAdvice(int *C, int n, int k, int m) { priority_queue<pii> pq; for (int i = 0; i < n; i++) ind[i] = n + k + 1; memset(last, -1, sizeof last); for (int i = n - 1; i > -1; i--) { val[k + i] = ind[C[i]]; ind[C[i]] = k + i; } for (int i = 0; i < k; i++) { val[i] = ind[i]; ind[i] = i; mrk[i] = 1; pq.push({val[i], i}); } for (int i = 0; i < n; i++) { if (!mrk[C[i]]) { pii cur = pq.top(); pq.pop(); int nx = (cur.se > k - 1) ? C[cur.se - k] : cur.se; mrk[nx] = 0; ans[cur.se] = 1; mrk[C[i]] = 1; } pq.push({val[k + i], k + i}); } for (int i = 0; i < n + k; i++) WriteAdvice(ans[i]); }
//#pragma GCC optimize("O3") #include <bits/stdc++.h> #include "assistant.h" //#include "grader.h" #define pii pair<int, int> #define pll pair<long long, long long> #define vii vector<pii> #define vi vector<int> #define pb push_back #define mp make_pair #define fi first #define se second using namespace std; typedef long long int ll; const int MAXN = 2e5 + 5; int mrk[MAXN]; vi arr; void Assist(unsigned char *A, int n, int k, int R) { for (int i = 0; i < k; i++) { if (A[i]) arr.pb(i); mrk[i] = 1; } for (int i = 0; i < n; i++) { int col = GetRequest(); if (!mrk[col]) { mrk[arr.back()] = 0; PutBack(arr.back()); arr.pop_back(); } if (A[k + i]) // passive arr.pb(col); mrk[col] = 1; } }
#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...