제출 #829589

#제출 시각아이디문제언어결과실행 시간메모리
829589MilosMilutinovic최후의 만찬 (IOI12_supper)C++14
0 / 100
98 ms22952 KiB
#include "advisor.h" #include <bits/stdc++.h> using namespace std; void ComputeAdvice(int *c, int n, int k, int m) { vector<int> has(n); for (int i = 0; i < k; i++) { has[i] = true; } vector<set<int>> pos(n); for (int i = 0; i < n; i++) { pos[c[i]].insert(i); } set<pair<int, int>> st; for (int i = 0; i < k; i++) { if (pos[i].empty()) { st.emplace(n, i); } else { st.emplace(*pos[i].begin(), i); } } vector<bool> use(n); for (int i = 0; i < n; i++) { pos[c[i]].erase(pos[c[i]].find(i)); if (has[c[i]]) { use[i] = true; continue; } auto it = prev(st.end()); int x = it->second; st.erase(it); has[x] = false; has[c[i]] = true; if (pos[c[i]].empty()) { st.emplace(n, c[i]); } else { st.emplace(*pos[c[i]].begin(), c[i]); } } vector<vector<int>> p(n); for (int i = 0; i < n; i++) { p[c[i]].push_back(i); } for (int i = 0; i < k; i++) { if (pos[i].empty() || !use[p[i][0]]) { WriteAdvice(0); } else { WriteAdvice(1); } } vector<int> ptr(n); for (int i = 0; i < n; i++) { if (ptr[c[i]] == (int) p[c[i]].size() - 1) { WriteAdvice(0); } else { WriteAdvice(use[p[c[i]][ptr[c[i]]]] ? 1 : 0); } ptr[c[i]] += 1; } }
#include "assistant.h" #include <bits/stdc++.h> using namespace std; void Assist(unsigned char *a, int n, int k, int r) { set<int> st; for (int i = 0; i < k; i++) { if (a[i] == 0) { st.insert(i); } } vector<bool> has(n); for (int i = 0; i < k; i++) { has[i] = true; } vector<set<int>> pos(n); for (int i = 0; i < n; i++) { int req = GetRequest(); if (!has[req]) { assert(!st.empty()); has[req] = true; PutBack(*st.begin()); has[*st.begin()] = 0; st.erase(st.begin()); } if (a[i] == 0) { st.insert(req); } } } /* 4 2 65000 2 0 3 0 */
#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...