# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1223287 | thangdz2k7 | Shopping (JOI21_shopping) | C++20 | 0 ms | 0 KiB |
#include "Anna.h"
#include <bits/stdc++.h>
const int LG = 18;
int n, l, r;
void InitA(int N, int L, int R){
n = N, l = L, r = R;
for (int i = 0; i < LG; ++ i)
SendA((L >> i) & 1);
}
int cnt = 0, res = -1;
void ReceiveA(bool x){
if (x && l + cnt <= R) res = l + cnt;
++ cnt;
}
int Answer(){
return res;
}
#include "Bruno.h"
#include <bits/stdc++.h>
using namespace std;
const int LG = 18;
int l = 0, n;
vector <int> p;
void InitB(int N, vector <int> P){
p = P; n = N;
}
int cnt = 0;
void ReceiveB(bool y){
if (y) l |= (1 << cnt);
cnt ++;
if (cnt == LG){
int Max = 0;
for (int i = l; i < n; ++ i){
if (p[i] > Max) {
SendB(1);
Max = p[i];
}
else SendB(0);
}
}
}