| 15565 | 2025-02-20 13:14:31 | Ablablabla | A válaszadás nehézségei | cpp17 | Wrong answer 0/100 | 2ms | 544 KiB |
#include "AdamEsEva.h"
#include <bits/stdc++.h>
typedef long long ll;
struct adat{
ll l, r, ans;
};
ll szam = 0;
bool volt = 0;
ll kerdes[60];
bool valasz[60];
adat kerdez(ll l, ll r, ll ans, ll hatar){
while(l <= r && szam < hatar){
ll k = (l + r) / 2;
bool a = ask(k);
a ^= volt;
kerdes[szam] = k;
valasz[szam] = a;
szam++;
if(a){ // x <= s
ans = k;
l = k + 1;
} else{
r = k - 1;
}
}
return {l, r, ans};
}
ll keres(ll l, ll r){
ll vissza = 0;
while(l <= r){
ll k = (l + r) / 2;
bool a = ask(k);
if(valasz[k] != a){
vissza = k;
r = k - 1;
} else{
l = k + 1;
}
}
return vissza;
}
adat lepes(ll kezdL, ll kezdR, ll kezdAns, ll hatar){
auto [l, r, ans] = kerdez(kezdL, kezdR, kezdAns, hatar);
if(!volt){
bool a = ask(kerdes[0]);
if(a != valasz[0]){
l = kezdL, r = kezdR, ans = kezdAns;
ll elso = keres(0, hatar - 1);
for(ll i = 0; i < hatar; i++){
if(elso < i){
valasz[i] ^= 1;
}
if(valasz[i]){
ans = kerdes[i];
l = kerdes[i] + 1;
} else{
r = kerdes[i] - 1;
}
}
volt = 1;
}
}
return {l, r, ans};
}
void new_game() {
// elejen: x <= s
// utana: s < x
ll kezdL = 1, kezdR = 1e18, kezdAns = 0;
adat{kezdL, kezdR, kezdAns} = lepes(kezdL, kezdR, kezdAns, 32);
adat{kezdL, kezdR, kezdAns} = lepes(kezdL, kezdR, kezdAns, 48);
adat{kezdL, kezdR, kezdAns} = lepes(kezdL, kezdR, kezdAns, 56);
adat{kezdL, kezdR, kezdAns} = lepes(kezdL, kezdR, kezdAns, 60);
answer(kezdAns);
}
| Subtask | Sum | Test | Verdict | Time | Memory | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 0/100 | ||||||
| 1 | Wrong answer | 1ms | 324 KiB | ||||
| 2 | Wrong answer | 1ms | 316 KiB | ||||
| 3 | Wrong answer | 1ms | 508 KiB | ||||
| 4 | Wrong answer | 1ms | 316 KiB | ||||
| 5 | Wrong answer | 1ms | 316 KiB | ||||
| 6 | Wrong answer | 1ms | 500 KiB | ||||
| 7 | Wrong answer | 1ms | 316 KiB | ||||
| 8 | Wrong answer | 1ms | 316 KiB | ||||
| 9 | Wrong answer | 1ms | 316 KiB | ||||
| 10 | Wrong answer | 1ms | 316 KiB | ||||
| 11 | Wrong answer | 2ms | 544 KiB | ||||
| 12 | Wrong answer | 1ms | 396 KiB | ||||
| 13 | Wrong answer | 1ms | 320 KiB | ||||
| 14 | Wrong answer | 2ms | 316 KiB | ||||
| 15 | Wrong answer | 2ms | 532 KiB | ||||
| 16 | Wrong answer | 1ms | 316 KiB | ||||
| 17 | Wrong answer | 1ms | 508 KiB | ||||
| 18 | Wrong answer | 1ms | 316 KiB | ||||
| 19 | Wrong answer | 1ms | 496 KiB | ||||
| 20 | Wrong answer | 1ms | 508 KiB | ||||
| 21 | Wrong answer | 2ms | 316 KiB | ||||
| 22 | Wrong answer | 1ms | 316 KiB | ||||
| 23 | Wrong answer | 2ms | 316 KiB | ||||
| 24 | Wrong answer | 1ms | 500 KiB | ||||
| 25 | Wrong answer | 2ms | 500 KiB | ||||
| 26 | Wrong answer | 1ms | 508 KiB | ||||
| 27 | Wrong answer | 1ms | 316 KiB | ||||
| 28 | Wrong answer | 1ms | 316 KiB | ||||
| 29 | Wrong answer | 1ms | 316 KiB | ||||
| 30 | Wrong answer | 2ms | 316 KiB | ||||
| 31 | Wrong answer | 1ms | 316 KiB | ||||
| 32 | Wrong answer | 1ms | 316 KiB | ||||
| 33 | Wrong answer | 1ms | 512 KiB | ||||
| 34 | Wrong answer | 1ms | 316 KiB | ||||
| 35 | Wrong answer | 1ms | 316 KiB | ||||
| 36 | Wrong answer | 1ms | 316 KiB | ||||