// Problem: C. Qpwoeirut And The City // Contest: Codeforces Round #809 (Div. 2) // URL: https://codeforces.com/contest/1706/problem/C // Memory Limit: 256 MB // Time Limit: 1000 ms // // Powered by CP Editor (https://cpeditor.org)
/* Name: Author: xiaruize Date: */ #include<bits/stdc++.h> usingnamespace std; #define int long long #define ull unsigned long long #define ALL(a) (a).begin(), (a).end() #define pb push_back #define mk make_pair #define pii pair<int, int> #define pis pair<int, string> #define sec second #define fir first #define sz(a) int((a).size()) #define rep(i, x, y) for (int i = x; i <= y; i++) #define repp(i, x, y) for (int i = x; i >= y; i--) #define Yes cout << "Yes" << endl #define YES cout << "YES" << endl #define No cout << "No" << endl #define NO cout << "NO" << endl #define debug(x) cerr << #x << ": " << x << endl #define double long double constint INF = 0x3f3f3f3f; constint MOD = 1000000007; constint N = 1e5 + 10;
// bool st; int t; int n; int a[N]; int pre[N]; int suf[N]; int r[N]; // bool en;
voidsolve() { memset(pre, 0, sizeof(pre)); memset(suf, 0, sizeof(suf)); cin >> n; for (int i = 1; i <= n; i++) cin >> a[i]; for (int i = 2; i <= n; i++) { r[i] = max(max(a[i - 1], a[i + 1]) - a[i] + 1, 0ll); pre[i] = pre[i - 2] + r[i]; } for (int i = n - 1; i >= 0; i--) suf[i] = suf[i + 2] + r[i]; int res = INF; res = min(pre[n - 1], suf[2]); for (int i = 1; i <= n - 2; i += 2) res = min(res, pre[i - 1] + suf[i + 2]); if (n % 2 == 0) cout << res << endl; else cout << pre[n - 1] << endl; }
/* Name: Author: xiaruize Date: */ #include<bits/stdc++.h> usingnamespace std; #define int long long #define ull unsigned long long #define ALL(a) (a).begin(), (a).end() #define pb push_back #define mk make_pair #define pii pair<int, int> #define pis pair<int, string> #define sec second #define fir first #define sz(a) int((a).size()) #define rep(i, x, y) for (int i = x; i <= y; i++) #define repp(i, x, y) for (int i = x; i >= y; i--) #define Yes cout << "Yes" << endl #define YES cout << "YES" << endl #define No cout << "No" << endl #define NO cout << "NO" << endl #define debug(x) cerr << #x << ": " << x << endl #define double long double constint INF = 0x3f3f3f3f; constint MOD = 1000000007; constint N = 2e5 + 10;
// bool st; int n, k; int a[3005]; set<int> s[3005]; int minn = INF; int t; // bool en;
voidsolve() { cin >> n >> k; minn = INF; for (int i = 1; i <= n; i++) { cin >> a[i]; s[i].clear(); minn = min(minn, a[i]); } for (int i = 1; i <= n; i++) { for (int j = 1; j <= k; j++) s[i].insert(a[i] / j); } int res = INF; for (int i = 0; i <= minn; i++) { int mx = 0, mi = INF; for (int j = 1; j <= n; j++) { auto x = s[j].lower_bound(i); mx = max(mx, *x); mi = min(mi, *x); } res = min(res, mx - mi); } cout << res << endl; }