#include <bits/stdc++.h>
#include "grader.h"
#define taskname ""
#define pb push_back
#define eb emplace_back
#define fi first
#define se second
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define for0(i, n) for (int i = 0; i < (int)(n); ++i)
#define for1(i, n) for (int i = 1; i <= (int)(n); ++i)
#define ford(i, n) for (int i = (int)(n) - 1; i >= 0; --i)
#define fore(i, a, b) for (int i = (int)(a); i <= (int)(b); ++i)
using namespace std;
typedef long long ll;
typedef long double ld;
typedef complex <ld> cd;
typedef vector <cd> vcd;
typedef vector <int> vi;
template<class T> using v2d = vector <vector <T> >;
template<class T> bool uin(T &a, T b)
{
return a > b ? (a = b, true) : false;
}
template<class T> bool uax(T &a, T b)
{
return a < b ? (a = b, true) : false;
}
mt19937 rng(chrono::system_clock::now().time_since_epoch().count());
int HC(int N)
{
int n = N;
int l = 1, r = n;
while (l < r)
{
if ((r - l + 1) & 1)
{
//odd range length
int mid = (l + r) / 2;
Guess(l);
int p = Guess(r);
if (p == 0)
{
return mid;
}
else if (p == 1)
{
l = mid + 1;
}
else
{
r = mid - 1;
}
}
else
{
//even range length
int mid = (l + r) / 2;
Guess(l);
int p = Guess(r);
if (p == 1)
{
l = mid + 1;
}
else
{
r = mid;
}
}
}
return l;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
35 ms |
1272 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
37 ms |
1400 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
34 ms |
1272 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
910 ms |
24588 KB |
Output is partially correct - alpha = 0.068965517241 |