Submission #544084

#TimeUsernameProblemLanguageResultExecution timeMemory
544084azberjibiouGap (APIO16_gap)C++17
100 / 100
62 ms3264 KiB
#include "gap.h"
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
ll solv1(int T, int N)
{
    vector <ll> v;
    ll s=0, e=1000000000000000000, mn, mx;
    for(int i=N;i>0;i-=2)
    {
        MinMax(s, e, &mn, &mx);
        if(i==1)
        {
            v.push_back(mn);
        }
        else    v.push_back(mn), v.push_back(mx);
        s=mn+1;
        e=mx-1;
    }
    sort(v.begin(), v.end());
    ll ans=0;
    for(int i=0;i+1<v.size();i++)
    {
        ans=max(ans, v[i+1]-v[i]);
    }
    return ans;
}
ll solv2(int T, int N)
{
    ll s, e, mn, mx;
    vector <ll> v;
    MinMax(0, 1000000000000000000, &mn, &mx);
    s=mn, e=mx;
    v.push_back(s); v.push_back(e);
    if(N==2)    return mx-mn;
    ll L=e-s, rng=(L%(N-1)==0 ? L/(N-1)-1 : L/(N-1));
    ll pos=s+1;
    while(pos<e)
    {
        MinMax(pos, pos+rng, &mn, &mx);
        if(mn!=-1)
        {
            v.push_back(mn);    v.push_back(mx);
        }
        pos+=rng+1;
    }
    sort(v.begin(), v.end());
    ll ans=0;
    for(int i=0;i+1<v.size();i++)
    {
        ans=max(ans, v[i+1]-v[i]);
    }
    return ans;
}

ll findGap(int T, int N)
{
    if(T==1)    return solv1(T, N);
    else    return solv2(T, N);
}

Compilation message (stderr)

gap.cpp: In function 'll solv1(int, int)':
gap.cpp:22:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   22 |     for(int i=0;i+1<v.size();i++)
      |                 ~~~^~~~~~~~~
gap.cpp: In function 'll solv2(int, int)':
gap.cpp:49:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   49 |     for(int i=0;i+1<v.size();i++)
      |                 ~~~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...