Submission #107419

#TimeUsernameProblemLanguageResultExecution timeMemory
107419yamamayumi9489Gap (APIO16_gap)C++14
100 / 100
85 ms4076 KiB
#include<iostream> #include<utility> #include<string> #include<vector> #include<algorithm> #include<deque> #include<queue> #include<set> #include<map> #include<functional> using namespace std; #define LL long long #define ALF "ABCDEFGHIJKLMNOPQRSTUVWXYZ" #define LLBIG 1999999999999999999 #define INTBIG 1111111111 #define MOD 1000000007 #define PI pair<int,int> #define VI vector<int> #define VL vector<LL> #define VVI vector<vector<int>> #include"gap.h" //MinMax(int,int,int&,int&) long long findGap(int T, int N) { if (T == 1) { LL A[100002]; LL l = 0, r = 1000000000000000000LL; for (int i = 0; i<(N + 1) / 2; i++) { MinMax(l, r, &A[i], &A[N - 1 - i]); l = A[i] + 1; r = A[N - 1 - i] - 1; } LL ans = 0; for (int i = 0; i<N - 1; i++) ans = max(ans, A[i + 1] - A[i]); return ans; } else if (T == 2) { VL A; LL mn, mx; MinMax(0, 1000000000000000000LL, &mn, &mx); LL l = mn + 1; LL r = mn + ((mx - mn + N - 1) / N); r = min(r,mx-1); for (LL i = 0; i < N; i++) { LL a, b; MinMax(l, r, &a, &b); if (a != -1) { A.push_back(a); A.push_back(b); } if(r == mx-1) break; l += ((mx - mn + N - 1) / N); r += ((mx - mn + N - 1) / N); r = min(r,mx-1); } A.push_back(mn); A.push_back(mx); sort(A.begin(), A.end()); LL ans = 0; for (int i = 1; i < (int)A.size(); i++) ans = max(ans, A[i] - A[i - 1]); return ans; } else return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...