Submission #109329

#TimeUsernameProblemLanguageResultExecution timeMemory
109329b2563125Gap (APIO16_gap)C++14
100 / 100
89 ms2040 KiB
#include<iostream> #include<algorithm> #include<vector> #include "gap.h" using namespace std; #define vel vector<long long> #define ll long long #define rep(i,n) for(__int128 i=0;i<n;i++) int pr = 1000000007; int ref(int &a) { a = a % pr; a += pr; a = a % pr; return a; } long long findGap(int t, int n) { if (t == 1) { vel a(n); ll mn = 0; ll mx = (pr - 7); mx *= mx; rep(i, (n + 1) / 2) { MinMax(mn, mx, &mn, &mx); a[i] = mn; a[n - 1 - i] = mx; mn++; mx--; } ll ans = 0; rep(i, n - 1) { ans = max(ans, a[i + 1] - a[i]); } return ans; } if (t == 2) { __int128 N = n; long long a1; long long an; long long INF = pr - 7; INF *= INF; MinMax(0, INF, &a1, &an); __int128 X = an - a1 + 1; long long now_min = a1; long long ans = 0; if (n == 2) { return an - a1; } N--; n--; rep(i, n) { long long mn, mx; __int128 j = i; j++; __int128 n1 = (X*i) / N; __int128 n2 = (X*j) / N; ll q1 = a1 + n1; ll q2 = a1 + n2; q2--; MinMax(q1, q2, &mn, &mx); if (mn != -1) { ans = max(mn - now_min, ans); now_min = mx; } } return ans; } }

Compilation message (stderr)

gap.cpp: In function 'long long int findGap(int, int)':
gap.cpp:59:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...