Submission #497690

#TimeUsernameProblemLanguageResultExecution timeMemory
497690LittleCubeWorm Worries (BOI18_worm)C++14
0 / 100
2 ms268 KiB
#include <stdio.h>
#include <stdlib.h>

int query(int x, int y, int z)
{
    printf("? %d %d %d\n", x, y, z);
    fflush(stdout);
    int ans = -1;
    (void)scanf("%d", &ans);
    if (ans == -1)
        exit(0);
    return ans;
}

__attribute__((noreturn)) void guess(int x, int y, int z)
{
    printf("! %d %d %d\n", x, y, z);
    exit(0);
}

int main()
{
    int N, M, K, Q;
    (void)scanf("%d %d %d %d", &N, &M, &K, &Q);
    if (M == 1 && K == 1)
    {
        int L = 1, R = N, lans;
        lans = query(L, 1, 1);
        while (L < R)
        {
            int mid = (L + R + 1) / 2, mans = query(mid, 1, 1);
            if (mans <= lans)
                R = mid - 1;
            else
                L = mid, lans = mans;
        }
        guess(L, 1, 1);
    }
}
// 1 4 6 3 7 | 2 9 8 5 19 | 4 3

Compilation message (stderr)

worm.cpp: In function 'int query(int, int, int)':
worm.cpp:9:16: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
    9 |     (void)scanf("%d", &ans);
      |           ~~~~~^~~~~~~~~~~~
worm.cpp: In function 'int main()':
worm.cpp:24:16: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   24 |     (void)scanf("%d %d %d %d", &N, &M, &K, &Q);
      |           ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...