제출 #1180333

#제출 시각아이디문제언어결과실행 시간메모리
1180333n3rm1n최후의 만찬 (IOI12_supper)C++20
0 / 100
199 ms8944 KiB
#include<bits/stdc++.h> #include "advisor.h" using namespace std; const int maxn = 1e5 + 10; int last[maxn], bitcnt; int getlog(int x) { for (int i = 0; i < 20; ++ i) { int p = (1 << i); if(p >= x)return i; } } void givebits(int x) { for (int i = 0; i < bitcnt; ++ i) { if((1 << i) & x)WriteAdvice(1); else WriteAdvice(0); } } map < int, int > mp; void ComputeAdvice(int *C, int N, int K, int M) { mp.clear(); int n = N; int k = K; int m = M; bitcnt = getlog(N); for (int i = 0; i < n; ++ i) last[i] = n; for (int i = 0; i < n; ++ i) { last[C[i]] = i; } set < pair < int, int > > q; for (int i = 0; i < K; ++ i) { mp[i] = 1; q.insert(make_pair(last[i], i)); } for (int i = 0; i < n; ++ i) { /// cout << " want " << C[i] << endl; if(mp[C[i]])WriteAdvice(0); else { WriteAdvice(1); pair < int, int > w = *q.rbegin(); int index = w.second; // cout << " remove " << index << endl; q.erase(w); givebits((index)); q.insert(make_pair(last[C[i]], C[i])); mp[index] = 0; mp[C[i]] = 1; } if(last[C[i]] == i) { q.erase(make_pair(i, C[i])); q.insert(make_pair(n, C[i])); } } }
#include <bits/stdc++.h> #include "assistant.h" #define pb push_back using namespace std; const int maxnn = 1e5 + 10; vector < int > g; int n, bitche; int getlog2(int x) { for (int i = 0; i < 20; ++ i) { int p = (1 << i); if(p >= n)return i; } } int curr_bit = 0; int get_bits() { int ans = 0; for (int i = 0; i < bitche; ++ i) { if(g[curr_bit])ans = (ans | (1 << i)); curr_bit ++; } return ans; } void Assist(unsigned char *A, int N, int K, int R) { n = N; bitche = getlog2(N); for (int i = 0; i < R; ++ i) { g.pb(A[i]); } for (int i = 0; i < N; ++ i) { int curr = GetRequest(); // cout << "i " << endl; int type = g[curr_bit]; // cout << " type = " << type << endl; curr_bit ++; if(type == 0)continue; int x = get_bits(); // cout << x << endl; PutBack(x); } }

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

# 1번째 컴파일 단계

advisor.cpp: In function 'int getlog(int)':
advisor.cpp:14:1: warning: control reaches end of non-void function [-Wreturn-type]
   14 | }
      | ^

# 2번째 컴파일 단계

assistant.cpp: In function 'int getlog2(int)':
assistant.cpp:16:1: warning: control reaches end of non-void function [-Wreturn-type]
   16 | }
      | ^
#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...