제출 #171250

#제출 시각아이디문제언어결과실행 시간메모리
171250dndhkLast supper (IOI12_supper)C++14
0 / 100
448 ms25800 KiB
#include "advisor.h" #include <bits/stdc++.h> #define all(v) (v).begin(), (v).end() #define sortv(v) sort(all(v)) #define uniqv(v) (v).erase(unique(all(v)), (v).end()) #define pb push_back #define FI first #define SE second #define lb lower_bound #define ub upper_bound #define mp make_pair #define test 1 #define TEST if(test) using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef pair<ll, ll> pll; typedef vector<int> vi; const int MAX_N = 100000; vector<int> need[MAX_N+1]; bool chk[MAX_N+1]; priority_queue<pii> pq; int t = 0; void send(int x){ for(int i=0; i<t; i++){ WriteAdvice((x%2)); x/=2; } return; } void ComputeAdvice(int *C, int N, int K, int M) { while((1<<t)-1<N+1){ t++; } for(int i=1; i<=N; i++) need[i].pb(N); for(int i=N-1; i>=0; i--){ //cout<<i<<" "<<C[i]<<endl; need[C[i]].pb(i); } for(int i=0; i<K; i++){ pq.push(make_pair(need[i].back(), i)); chk[i] = true; } for(int i=0; i<N; i++){ int now = C[i]; if(chk[now]){ send((1<<t)-1); }else{ pii p; while(1){ p = pq.top(); pq.pop(); if(need[p.second].empty() || need[p.second].back()!=p.first){ continue; } break; } //cout<<i<<" "<<p.first<<" "<<p.second<<endl; send(p.second); chk[p.second] = false; } need[now].pop_back(); pq.push(make_pair(need[now].back(), now)); chk[now] = true; } }
#include "assistant.h" #include <bits/stdc++.h> #define all(v) (v).begin(), (v).end() #define sortv(v) sort(all(v)) #define uniqv(v) (v).erase(unique(all(v)), (v).end()) #define pb push_back #define FI first #define SE second #define lb lower_bound #define ub upper_bound #define mp make_pair #define test 1 #define TEST if(test) using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef pair<ll, ll> pll; typedef vector<int> vi; int tt; void Assist(unsigned char *A, int N, int K, int R) { while((1<<tt)-1<N+1){ tt++; } int idx = 0; for(int i=0; i<N; i++){ int req = GetRequest(); int now = 0; for(int k=0; k<tt; k++){ now = now + (int)A[idx]*(1<<k); idx++; } if(now==(1<<tt)-1){ continue; }else{ PutBack(now); } } }

컴파일 시 표준 에러 (stderr) 메시지

assistant.cpp: In function 'void Assist(unsigned char*, int, int, int)':
assistant.cpp:33:7: warning: unused variable 'req' [-Wunused-variable]
   int req = GetRequest();
       ^~~
#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...