Submission #244215

#TimeUsernameProblemLanguageResultExecution timeMemory
244215vaavenWatching (JOI13_watching)C++14
0 / 100
9 ms512 KiB
/* `-:://:::- `//:-------:/:` .+:--.......--:+` `+:--..`````..--//` .o:--..`` ``..--:o` .o:--...```..---+/` `/y+o/---....---:+o. `...````-os+/:---:/+o/--.` `-/+++++/:. `...` :h+d+oooo+/+-` ... `/++//:::://++-`....` -.`//````````:` `..` `o+/::------://o/` `-` -. -` `..` `---.-o/:./o/::-..``..-ЗАПУСКАЕМ .. .. -` `... ``..`` `....o+:-++/:--.```..-://s. `-` .- -` `-o: .-//::::/:-` `:s+/:--....-::/+s-` .- `- -` -///:--------:/:` ./s+//:::::://oo-``..НЕЙРОННУЮ: СЕТЬ:::::::-`РАБОТЯГИ `+:--........--:/` .:ooo+++++osso-` `.:-...`/` ./::-------:/:` -` :+--..``````.--:+:...-+:-` `.-/+++++/+-.-` -. ``:so:/:--.......--:+` `-```````o+/+--..`````..--:o/-..:s+:. ```````:``.. `-` -` `+:--..`````..--/+-.../.`````..-o:--.......---/o. ` `: `:- -. .o:--..`` ``..--:o` `-` `:o+:--------:+o-` `-`-... .. .o/--...```..--:+/` `-` `oy/so/////++o/.` -/` `-` `- ``+s/o/:---...---:++. `-` .-../d://///:-.` `.---..``-..- .-/..`````-oo+/:::::/+o+- `-``-` `-. ```` `:++++/+++++- ..``.-/:` /y-:/++o++/:.`..` ./. `- -++/::::::://+/..:-``:` .. `-.` ```.``` `..` `..`-` `- `` -o//:--....-::/++` -.-` `-`.-` `..`..` `-.- -----ss+:++/:--.```..-://s. /. `:: `-:. ./` `````/:..+o/::-..``.--:/+s. ..-` `-``-` ..` `-` `-`-` `-s+/::-----::/+oo---``-` .. .:- ``` .-` .-.- `-` `:oo+//::://+os/..:`..-/:` :y.-:::::::.`.-` ./-` `-` `./+oooooooo+/.`- .-:...`.. .//:-------://` `- `..` `:. ``.-::::-.``-/` `-` `- `oo:+:--.......--:/` `- `.:--h.``..``` -.-`.- .- `+:--..`````..--//` `- /s-//::::::::. -` `/- .. .o:--..`` ``..--:o.```.- `//:--------://` -` .-`.-` -.`-o/--...```..--:+/.``-:....``:-.+:--....`...--:+` ..`-. `-. ``:os:o/:---...---:++. `- ``///+:-..``````.--:+-````-.` `.:///////.-` .:-..` -``-+o+/:::::/+o/. `- `:+:-..`````..--:o/:--/ys+- `-++///////+o/. ``....`-. :` `.:++++++/:.` .- -o/---......---/o. `.` `++//:-----::/+o:..` .-` : ``````` .- `+so+:--------:++-` `````:-``:o/::-..`..--:/+o` -. `- .- `../../+o+////+o+:.` -----syo/o+/:--.```..-://s. .-` `- .- `... ``-:////:-`` .` `/s//:--....-::/+s. -. `-` .- `..` .+o+/:::--:://+s/-..` .::+y ``` .- `..` ./oo++////+oso-` `.... :y-+:::::::/` ... `.:+oooooo/-` `....-. .//:-------:/:-.` ``...`` /+:+:--.......--:+` `+:--..`````..--//` .o:--..`` ``..--:o` .+/--...```..--:+/` `-o/:---...---:++. `-+o+/:---:/+o/. `.:+oooo+/-.` `````` */ #pragma GCC optimize("fast-math") #pragma GCC optimize("unroll-loops") #include <iostream> #include <iostream> #include <vector> #include <algorithm> #include <iomanip> #include <tuple> #include <math.h> #include <set> #include <stack> #include <bitset> #include <map> #include <queue> #include <random> #include <unordered_set> #include <unordered_map> #define DEBUG #define fi first #define se second #define pqueue priority_queue #define pb(x) push_back(x) //#define endl '\n' #define all(x) x.begin(), x.end() #define int long long #define mk(a, b) make_pair(a, b) using namespace std; typedef long long ll; typedef unsigned long long ull; typedef long double ld; typedef vector<int> vi; typedef vector<vector<int> > vvi; typedef vector<ull> vull; typedef vector<ll> vll; // typedef tuple<ll, ll, ll> tiii; typedef pair<int, int> pii; typedef vector<pair<int, int> > vpii; typedef pair<ll, ll> pll; typedef vector<bool> vb; typedef vector<string> vs; typedef vector< vector<ll> > vvll; typedef vector<char> vc; const ll INF = 1e9 + 228; const ll INFLL = 1e18; const ll MOD = 1e9 + 7; //static const int maxn = 1e6 + 228; const ld eps = 1e-6; const ld eps2 = 1e-9; const ll MOD2 = 998244353; const ll dosz = 5e5; const ll SZ = (1<<18); const ld PI = atan2l(0, -1); void fast_io(){ ios_base::sync_with_stdio(0); cin.tie(0); // freopen("empty.in", "r", stdin); // freopen("empty.out", "w", stdout); } int n, p, q; vi nums; bool check(int mid){ vvi dp(n+1, vi(q+1, INF)); dp[0].assign(q+1, 0); int cur1 = 1, cur2 = 1; for(int i=1; i<=n; i++){ while((nums[i-1]-nums[cur1-1])>=mid){ cur1++; } while((nums[i-1]-nums[cur2-1])>=mid*2){ cur2++; } for(int j=1; j<=q; j++){ dp[i][j] = min(dp[i][j], dp[cur2-1][j-1]); } for(int j=0; j<=q; j++){ dp[i][j] = min(dp[i][j], dp[cur1-1][j]+1); } } return (dp[n][q]<=p); } void solve(){ cin >> n >> p >> q; nums.resize(n); for(int &i:nums) cin >> i; sort(all(nums)); p = min(n, p); q = min(n, q); int l = 0, r = 1e9; int ans = 0; while(l<=r){ int mid = (l+r)/2; if(check(mid)){ ans = mid; r = mid-1; } else{ l = mid+1; } } cout << ans << endl; } signed main(){ fast_io(); srand(time(NULL)); // cout << fixed << setprecision(12); int q = 1; // cin >> q; while(q--) solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...