Submission #888319

#TimeUsernameProblemLanguageResultExecution timeMemory
88831912345678Gap (APIO16_gap)C++17
30 / 100
3102 ms4180 KiB
#include "gap.h"

#include <bits/stdc++.h>

using namespace std;

#define ll long long

long long findGap(int T, int N)
{
    if (T==1)
    {
        ll x=0, y=1e18, a, b, idx=0, mx=0;
        vector<ll> v;
        while (v.size()<N)
        {
            MinMax(x, y, &a, &b);
            if (a==b) v.push_back(a);
            else v.push_back(a), v.push_back(b);
            x=a+1; y=b-1;
        }
        sort(v.begin(), v.end());
        for (int i=1; i<v.size(); i++) mx=max(mx, v[i]-v[i-1]);
        return mx;
    }
    else
    {
        ll x=0, y=1e18, mn, mx, mmn, mmx, res=0;
        set<ll> s;
        MinMax(x, y, &mmn, &mmx);
        if (mmx-mmn+1<N+1) return 1;
        ll gap=(mmx-mmn+1)/(N+1);
        for (int i=mmn; i<=mmx; i+=gap)
        {
            MinMax(i, i+gap-1, &mn, &mx);
            if (mn==-1) continue;
            s.insert(mn);
            if (mn!=mx) s.insert(mx);
        }
        for (auto itr=s.begin(); next(itr)!=s.end(); itr=next(itr)) res=max(res, *next(itr)-*itr);
        return res;
    }
}

Compilation message (stderr)

gap.cpp: In function 'long long int findGap(int, int)':
gap.cpp:15:24: warning: comparison of integer expressions of different signedness: 'std::vector<long long int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   15 |         while (v.size()<N)
      |                ~~~~~~~~^~
gap.cpp:23:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   23 |         for (int i=1; i<v.size(); i++) mx=max(mx, v[i]-v[i-1]);
      |                       ~^~~~~~~~~
gap.cpp:13:31: warning: unused variable 'idx' [-Wunused-variable]
   13 |         ll x=0, y=1e18, a, b, idx=0, mx=0;
      |                               ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...