Submission #107043

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
1070432019-04-21 14:01:48DiuvenWatching (JOI13_watching)C++14
100 / 100
213 ms16248 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long lint;
int n, p, q, A[2010];
int f(int x){
if(x<1) return 0;
// A x . 0
int pos = upper_bound(A+1, A+n+1, x) - A - 1;
return pos;
}
inline int _min(int x, int y){ return x<y ? x : y; }
bool check(lint x){
static int D[2010][2010], E[2010], F[2010];
for(int i=1; i<=n; i++){
E[i] = f(A[i] - x);
F[i] = f(A[i] - 2*x);
}
for(int i=1; i<=n; i++) D[0][i] = 0;
for(int i=1; i<=n; i++){
int s = E[i], l = F[i];
D[i][0] = D[l][0] + 1;
for(int j=1; j<=n; j++)
D[i][j] = _min(D[s][j-1], D[l][j]+1);
}
// cout<<"SOLVE: "<<x<<'\n';
// for(int i=1; i<=n; i++, cout<<'\n') for(int j=1; j<=n; j++) cout<<D[i][j]<<' ';
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...