Submission #288208

#TimeUsernameProblemLanguageResultExecution timeMemory
288208ToMmyDongLast supper (IOI12_supper)C++11
100 / 100
331 ms22240 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int> pii; #define ALL(i) i.begin(), i.end() #define SZ(i) int(i.size()) #define X first #define Y second #ifdef tmd #define debug(...) fprintf(stderr,"#%d-(%s)=",__LINE__,#__VA_ARGS__);_do(__VA_ARGS__); template<typename T> void _do(T &&x){cerr<<x<<endl;} template<typename T, typename ...S> void _do(T &&x, S &&...y) {cerr<<x<<",";_do(y...);} template<typename IT> ostream& __printRng (ostream& os, IT bg, IT ed) { for (IT it=bg;it!=ed;it++) { if (it == bg) os << "{" << *it; else os << "," << *it; } return os << "}"; } template<typename T> ostream& operator << (ostream& os, const vector<T> &vec) { return __printRng(os, ALL(vec)); } template<typename T, typename S> ostream& operator << (ostream& os, const pair<T,S> &pa) { return os << "{" << pa.X << "," << pa.Y << "}"; } #else #define debug(...) #endif #include "advisor.h" const int BB = 25001; void ComputeAdvice(int *c, int n, int k, int m) { vector<int> nxt(n); vector<int> lst(n, n); for (int i=n-1; i>=0; i--) { nxt[i] = lst[c[i]]; lst[c[i]] = i; } vector<int> CC; for (int i=0; i<n; i++) { CC.emplace_back(c[i]); } debug(CC); set<pii> pq; set<int> st; map<int,int> pos; vector<int> in(n); vector<int> del(n+k); for (int i=0; i<k; i++) { pos[i] = i; pq.emplace(pii(lst[i], i)); st.insert(i); debug(lst[i], i); in[i] = i; } vector<int> pl(k); iota(pl.begin(), pl.end(), 0); int prv = -1; for (int i=0; i<n; i++) { int req = c[i]; assert(c[i] == req); bool flag = true; if (!st.count(req)) { pii cur = *prev(pq.end()); pq.erase(prev(pq.end())); debug(cur.Y); del[in[cur.Y]] = true; pl[pos[cur.Y]] = req; pos[req] = pos[cur.Y]; st.erase(cur.Y); st.insert(req); pq.emplace(nxt[i], req); in[req] = i+k; } else { flag = false; pq.erase({i, req}); pq.emplace(nxt[i], req); in[req] = i+k; } } for (int i=0; i<k+n; i++) { WriteAdvice(del[i]); } debug("done"); }
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int> pii; #define ALL(i) i.begin(), i.end() #define SZ(i) int(i.size()) #define X first #define Y second #ifdef tmd #define debug(...) fprintf(stderr,"#%d-(%s)=",__LINE__,#__VA_ARGS__);_do(__VA_ARGS__); template<typename T> void _do(T &&x){cerr<<x<<endl;} template<typename T, typename ...S> void _do(T &&x, S &&...y) {cerr<<x<<",";_do(y...);} template<typename IT> ostream& __printRng (ostream& os, IT bg, IT ed) { for (IT it=bg;it!=ed;it++) { if (it == bg) os << "{" << *it; else os << "," << *it; } return os << "}"; } template<typename T> ostream& operator << (ostream& os, const vector<T> &vec) { return __printRng(os, ALL(vec)); } template<typename T, typename S> ostream& operator << (ostream& os, const pair<T,S> &pa) { return os << "{" << pa.X << "," << pa.Y << "}"; } #else #define debug(...) #endif #include "assistant.h" const int BB = 25001; void Assist(unsigned char *a, int n, int k, int r) { int prv = -1; set<int> dl; set<int> pl; for (int i=0; i<k; i++) { if (a[i]) dl.insert(i); pl.insert(i); } vector<int> he; for (int i=0; i<n+k; i++) { he.emplace_back(a[i]); } debug(he); for (int i=0, ptr=0; i<n; i++) { int req = GetRequest(); debug(i, req); if (pl.count(req)) { if (a[i+k]) dl.insert(req); continue; } else { assert(dl.size()); int tp = *dl.begin(); dl.erase(dl.begin()); pl.erase(tp); pl.insert(req); PutBack(tp); if (a[i+k]) dl.insert(req); } } }

Compilation message (stderr)

advisor.cpp: In function 'void ComputeAdvice(int*, int, int, int)':
advisor.cpp:68:14: warning: variable 'flag' set but not used [-Wunused-but-set-variable]
   68 |         bool flag = true;
      |              ^~~~
advisor.cpp:63:9: warning: unused variable 'prv' [-Wunused-variable]
   63 |     int prv = -1;
      |         ^~~

assistant.cpp: In function 'void Assist(unsigned char*, int, int, int)':
assistant.cpp:50:19: warning: unused variable 'ptr' [-Wunused-variable]
   50 |     for (int i=0, ptr=0; i<n; i++) {
      |                   ^~~
assistant.cpp:36:9: warning: unused variable 'prv' [-Wunused-variable]
   36 |     int prv = -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...