Submission #554357

#TimeUsernameProblemLanguageResultExecution timeMemory
554357AmShZGap (APIO16_gap)C++11
30 / 100
64 ms3308 KiB
//khodaya khodet komak kon
# include <bits/stdc++.h>
# include "gap.h"

using namespace std;

typedef long long                                        ll;
typedef long double                                      ld;
typedef pair <int, int>                                  pii;
typedef pair <pii, int>                                  ppi;
typedef pair <int, pii>                                  pip;
typedef pair <pii, pii>                                  ppp;
typedef pair <ll, ll>                                    pll;

# define A                                               first
# define B                                               second
# define endl                                            '\n'
# define sep                                             ' '
# define all(x)                                          x.begin(), x.end()
# define kill(x)                                         return cout << x << endl, 0
# define SZ(x)                                           int(x.size())
# define lc                                              id << 1
# define rc                                              id << 1 | 1
# define fast_io                                         ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);

ll power(ll a, ll b, ll md) {return (!b ? 1 : (b & 1 ? a * power(a * a % md, b / 2, md) % md : power(a * a % md, b / 2, md) % md));}

const int xn = 1e6 + 10;
const int xm = - 20 + 10;
const int sq = 320;
const int inf = 1e9 + 10;
const ll INF = 1e18 + 10;
const ld eps = 1e-15;
const int mod = 1e9 + 7;//998244353;
const int base = 257;

ll findGap(int T, int n){
	ll L, R, ans = 0, mn, mx;
	MinMax(0, INF, &L, &R);
	vector <ll> vec;
	vec.push_back(L);
	vec.push_back(R);
	if (T == 1){
		int l = 2, r = n - 1;
		mn = L, mx = R;
		while (l <= r){
			MinMax(mn + 1, mx - 1, &mn, &mx);
			vec.push_back(mn);
			vec.push_back(mx);
			++ l, -- r;
		}
	}
	else{
		ll t = (R - L + n) / (n - 1);
		ans = t;
		ll last = L;
		while (last < R){
			MinMax(last + 1, last + t, &mn, &mx);
			vec.push_back(mn);
			vec.push_back(mx);
			last += t;
		}
	}
	sort(all(vec));
	for (int i = 1; i < SZ(vec); ++ i)
		ans = max(ans, vec[i] - vec[i - 1]);
	return ans;
}
/*
int main(){
	fast_io;



	return 0;
}
*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...