Submission #23400

#TimeUsernameProblemLanguageResultExecution timeMemory
23400noobprogrammerGap (APIO16_gap)C++14
100 / 100
83 ms5924 KiB
#include<bits/stdc++.h> #include "gap.h" using namespace std; typedef long long ll; #define fi first #define se second #define ii pair<int,int> #define vii vector<pair<int,int> > #define vi vector<int> ll arr[100010] ; ll findGap(int t , int n){ int sz = n ; if(t == 1){ MinMax( 0 , 1e18 , arr + 1 , arr + n ) ; sz-=2 ; int i = 1 ; while(sz > 0){ MinMax( arr[i]+1 , arr[n-i+1]-1 , arr + i + 1 , arr + n - i ) ; sz-=2 ; i++ ; } ll res = 0 ; for(int i=1;i<n;i++) res = max(arr[i+1] - arr[i] , res) ; return res ; } else{ ll mn , mx , len , seg , a , b ; MinMax(0 , 1e18 , &mn , &mx ) ; // if(n == 2) return mx - mn ; len = mx - mn + 1 ; seg = len/n ; ll res = 0 , lst = mn ; MinMax( mn+1 , mn + seg - 1 , &a , &b ) ; if(a != -1) res = a - lst , lst = b ; for(ll i=mn+seg ; i<mx ; i+=seg) { MinMax( i+1 , min(i + seg - 1 , mx-1 ) , &a , &b ) ; if(a > -1) res = max(res , a - lst) , lst = b ; } return max(res , mx - lst) ; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...