Submission #1069415

#TimeUsernameProblemLanguageResultExecution timeMemory
1069415MrPavlitoGap (APIO16_gap)C++17
30 / 100
47 ms4476 KiB
#include "gap.h" #include <bits/stdc++.h> #define pb push_back #define mp make_pair #define all(x) (x).begin(),(x).end() #define fi first #define sc second #define endl "\n" #define pii pair<int,int> using namespace std; const int MAXN = 1e5+5; const int mod7 = 1e9+7; const long long inf = 1e18; long long findGap(int T, int N) { if(T == 1) { long long l = 0; long long r = inf; long long rez = 0; vector<long long> nizl; vector<long long> nizr; while(nizl.size() + nizr.size() < N && l<=r) { long long a; long long b; MinMax(l, r, &a ,&b); if(a==-1)break; l = a+1; r = b-1; if(a!=b) { nizl.push_back(a); nizr.push_back(b); } else nizl.pb(a); } reverse(all(nizr)); vector<long long> merged(nizl.size()+ nizr.size()); merge(all(nizl), all(nizr), merged.begin()); for(int i=0; i<N-1; i++) rez = max(rez, merged[i+1] - merged[i]); return rez; } else { long long l = 0; long long r = inf; long long rez = 0; vector<long long> niz; MinMax(l, r, &l ,&r); if(N==2)return r-l; long long razlika = (r-l-1+N-2) / (N-1)+1; if((r-l)%(N-1) == 0)razlika--; for(long long i=l+1; i<r; i+= razlika) { long long a; long long b; MinMax(i, i+razlika, &a ,&b); if(a==-1)continue; niz.pb(a); if(a!=b)niz.pb(b); } sort(all(niz)); for(int i=0; i<niz.size()-1; i++) rez = max(rez, niz[i+1] - niz[i]); return rez; } } /* 2 4 2 3 6 8 */

Compilation message (stderr)

gap.cpp: In function 'long long int findGap(int, int)':
gap.cpp:26:41: warning: comparison of integer expressions of different signedness: 'std::vector<long long int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   26 |         while(nizl.size() + nizr.size() < N && l<=r)
      |               ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
gap.cpp:67:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   67 |         for(int i=0; i<niz.size()-1; i++) rez = max(rez, niz[i+1] - niz[i]);
      |                      ~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...