# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1074440 | 2024-08-25T10:32:27 Z | beaconmc | Hotter Colder (IOI10_hottercolder) | C++14 | 2179 ms | 8040 KB |
#include "grader.h" #include <bits/stdc++.h> typedef long long ll; #define FOR(i,x,y) for(ll i=x; i<y; i++) #define FORNEG(i,x,y) for(lli = x; i>y; i--) using namespace std; ll n; map<ll,ll> sus; ll cnt = 0; ll idkman = -1; int guess(ll a){ if (a==0) return -1; if (a==n+1) return -1; cnt++; idkman = a; return Guess(a); } int solve(int a, int b){ if (a==b) return a; ll lmao = 1; // cout << lmao << endl; // cout << a << " " << b << endl; if (idkman == (a+b)/2){ // cout << "LMAO" << endl; ll mid = idkman; ll right = guess(idkman+1); if (right == -1){ return solve(a, mid); }else{ return solve(mid+1, b); } } else{ if (lmao == 0){ ll mid = (a+b)/2; ll midleft = (a+mid)/2; ll midright = (b+mid+1)/2; ll left, right; left = guess(midleft); right = guess(midright); if (right == 0 ){ return (midleft+midright)/2; } else if (right == -1){ return solve(a,mid); }else{ return solve(mid+1, b); } } else{ ll mid = (a+b)/2; ll midleft = (a+mid)/2; ll midright = (b+mid+1)/2; ll left, right; right = guess(midright); left = guess(midleft); if (left == 0 ){ return (midleft+midright)/2; } else if (left == -1){ return solve(mid+1, b); }else{ return solve(a, mid); } } } } int HC(int N){ idkman = -1; srand(69420); sus.clear(); n = N; cnt = 0; ll ans = solve(1,N); return ans; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 234 ms | 6748 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 236 ms | 6744 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 235 ms | 6748 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Partially correct | 2179 ms | 8040 KB | Output is partially correct - alpha = 0.083333333333 |