제출 #1176834

#제출 시각아이디문제언어결과실행 시간메모리
1176834simona1230최후의 만찬 (IOI12_supper)C++20
0 / 100
257 ms9764 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)) { //cout<<1; WriteAdvice(1); } else { //cout<<0; WriteAdvice(0); } } } void ComputeAdvice(int *c, int n, int k, int m) { int h=0; for(int i=1; i<=n; i++) { //cout<<c[h]<<" "; a[i]=c[h++]; int x=1,y=0; while(x*2<=a[i])x*=2,y++; b=max(y,b); } b++; for(int i=1; i<=n; i++) bin(a[i]); ///cout<<endl; }
#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) { int h=0; B=r/n; for(int i=1;i<=n;i++) { string s=""; for(int id=(i-1)*B;id<i*B;id++) { //cout<<a[h]; if(a[h++])s+='1'; else s+='0'; } //cout<<endl; //cout<<s<<endl; 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; } /*for(int j=0;j<n;j++) cout<<id[j]<<" "; cout<<endl; for(auto it=s.begin();it!=s.end();it++) cout<<*it<<" "; cout<<endl;*/ 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...