제출 #1176502

#제출 시각아이디문제언어결과실행 시간메모리
1176502simona1230최후의 만찬 (IOI12_supper)C++20
0 / 100
197 ms9520 KiB
#include <bits/stdc++.h> #include "advisor.h" using namespace std; int a[100001],b; void bin(int x) { for(int i=0; i<b; i++) if(x&(1<<i))WriteAdvice(1); else WriteAdvice(0); } void ComputeAdvice(int *c, int n, int k, int m) { for(int i=1; i<=n; i++) { a[i]=*c; int x=1,y=0; while(x*2<=a[i])x*=2,y++; b=max(y,b); c++; } for(int i=1;i<=n;i++) bin(a[i]); }
#include <bits/stdc++.h> #include "assistant.h" using namespace std; int c[100001],b; int dec(string s) { int x=0; for(int i=0;i<b;i++) if(s[i]=='1')x+=(1<<i); return x; } int id[100001],in[100001]; vector<int> p[100001]; struct cmp { bool operator()(const int&x,const int&y)const { return p[x][id[x]]>p[y][id[y]]; } }; void Assist(unsigned char *a, int n, int k, int r) { b=r/n; for(int i=1;i<=n;i++) { string s=""; for(int id=(i-1)*b;id<i*b;id++) { s+=*a; a++; } c[i]=dec(s); p[c[i]].push_back(i); } for(int i=0;i<n;i++) p[i].push_back(n+1); vector<int> curr; set<int,cmp> s; for(int i=0;i<k;i++) { in[i]=1; s.insert(i); } for(int i=0;i<n;i++) { int x=GetRequest(); if(in[x]) { s.erase(x); id[x]++; s.insert(x); continue; } int y=*s.begin(); in[y]=0; in[x]=1; PutBack(y); s.erase(y); id[x]++; s.insert(x); } }
#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...