Submission #668310

#TimeUsernameProblemLanguageResultExecution timeMemory
668310finn__Gap (APIO16_gap)C++17
30 / 100
56 ms1104 KiB
#include <bits/stdc++.h>
#include "gap.h"
using namespace std;

long long findGap(int T, int n)
{
    switch (T)
    {
    case 1:
    {
        long long a, b, x, y, max_d = 0;
        MinMax(0, 1e18, &a, &b);
        size_t num_examined = 2;

        if (num_examined == n)
            max_d = max(max_d, b - a);

        while (num_examined < n)
        {
            if (num_examined == n - 1)
            {
                MinMax(a + 1, b, &x, &y);
                num_examined++;
            }
            else
            {
                MinMax(a + 1, b - 1, &x, &y);
                num_examined += 2;
            }

            max_d = max(max_d, max(x - a, b - y));

            a = x;
            b = y;

            if (num_examined == n)
                max_d = max(max_d, y - x);
        }

        return max_d;
    }
    case 2:
    {
        long long a, b;
        MinMax(0, 1e18, &a, &b);
        long long const l = (b - a) / (n - 1) + 1, x0 = a;

        long long last = a, max_d = 0;

        for (size_t i = 0; i < n - 1; i++)
        {
            MinMax(x0 + i * l + 1, x0 + (i + 1) * l, &a, &b);
            max_d = max(max_d, a - last);
            last = b;
        }
        return max_d;
    }
    }
}

Compilation message (stderr)

gap.cpp: In function 'long long int findGap(int, int)':
gap.cpp:15:26: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   15 |         if (num_examined == n)
      |             ~~~~~~~~~~~~~^~~~
gap.cpp:18:29: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   18 |         while (num_examined < n)
      |                ~~~~~~~~~~~~~^~~
gap.cpp:20:30: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   20 |             if (num_examined == n - 1)
      |                 ~~~~~~~~~~~~~^~~~~~~~
gap.cpp:36:30: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   36 |             if (num_examined == n)
      |                 ~~~~~~~~~~~~~^~~~
gap.cpp:50:30: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   50 |         for (size_t i = 0; i < n - 1; i++)
      |                            ~~^~~~~~~
gap.cpp:59:1: warning: control reaches end of non-void function [-Wreturn-type]
   59 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...