Submission #224515

# Submission time Handle Problem Language Result Execution time Memory
224515 2020-04-18T09:37:03 Z jhnah917 Hotter Colder (IOI10_hottercolder) C++14
81 / 100
862 ms 13476 KB
#include "grader.h"
#include <bits/stdc++.h>
using namespace std;

int sub3(int N){
    int l = 1, r = N;
    while(l < r){
        int m = l + r >> 1;
        int a = Guess(l), b = Guess(r);
        if(b == 1) l = m + 1;
        else if(b == -1) r = l + r - 1 >> 1;
        else return m;
    }
    return l;
}

int HC(int N){
    int l = 1, r = N;
    int prv = l + (r - l) / 3; Guess(prv);
    while(l < r){
        int m1 = l + (r - l) / 3, m2 = r - (r - l) / 3;
        int now = abs(prv - m1) > abs(prv - m2) ? m1 : m2;
        int qry = Guess(now);
        if(qry == 1){
            if(prv < now) l = max(l, (prv + now >> 1) + 1);
            else r = min(r, prv + now >> 1);
        }
        else if(qry == -1){
            if(prv < now) r = min(r, prv + now >> 1);
            else l = max(l, (prv + now >> 1) + 1);
        }
        else return prv + now >> 1;
        prv = now;
    }
    return l;
}

Compilation message

hottercolder.cpp: In function 'int sub3(int)':
hottercolder.cpp:8:19: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
         int m = l + r >> 1;
                 ~~^~~
hottercolder.cpp:11:36: warning: suggest parentheses around '-' inside '>>' [-Wparentheses]
         else if(b == -1) r = l + r - 1 >> 1;
                              ~~~~~~^~~
hottercolder.cpp:9:13: warning: unused variable 'a' [-Wunused-variable]
         int a = Guess(l), b = Guess(r);
             ^
hottercolder.cpp: In function 'int HC(int)':
hottercolder.cpp:25:43: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
             if(prv < now) l = max(l, (prv + now >> 1) + 1);
                                       ~~~~^~~~~
hottercolder.cpp:26:33: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
             else r = min(r, prv + now >> 1);
                             ~~~~^~~~~
hottercolder.cpp:29:42: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
             if(prv < now) r = min(r, prv + now >> 1);
                                      ~~~~^~~~~
hottercolder.cpp:30:34: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
             else l = max(l, (prv + now >> 1) + 1);
                              ~~~~^~~~~
hottercolder.cpp:32:25: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
         else return prv + now >> 1;
                     ~~~~^~~~~
# Verdict Execution time Memory Grader output
1 Correct 31 ms 1280 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 31 ms 1280 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 37 ms 1280 KB Output is correct
# Verdict Execution time Memory Grader output
1 Partially correct 862 ms 13476 KB Output is partially correct - alpha = 0.250000000000