Submission #981278

#TimeUsernameProblemLanguageResultExecution timeMemory
981278AmaarsaaWatching (JOI13_watching)C++14
100 / 100
114 ms16244 KiB
#include <stdio.h> #include <algorithm> using namespace std; int N,P,Q,A[2020]; int D[2020][2020]; bool chk(int w) { if (w <= 0) return false; int i,j,k,l; for (i=j=k=1;i<=N;i++){ while (A[i] - A[j] >= w) j++; while (A[i] - A[k] >= w * 2) k++; D[i][0] = D[j-1][0] + 1; for (l=1;l<=Q;l++) D[i][l] = min(D[j-1][l] + 1, D[k-1][l-1]); } for (l=0;l<=Q;l++) if (D[N][l] <= P) return true; return false; } int main() { int i; scanf ("%d %d %d",&N,&P,&Q); for (i=1;i<=N;i++) scanf ("%d",&A[i]); sort(A+1,A+1+N); if (N <= P + Q) printf ("1"); else{ int l = 1, r = 1000000000, m; while (l < r){ m = (l + r) / 2; if (chk(m)) r = m - 1; else l = m + 1; } while (chk(m)) m--; while (!chk(m)) m++; printf ("%d",m); } return 0; }

Compilation message (stderr)

watching.cpp: In function 'int main()':
watching.cpp:29:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   29 |  scanf ("%d %d %d",&N,&P,&Q);
      |  ~~~~~~^~~~~~~~~~~~~~~~~~~~~
watching.cpp:30:27: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   30 |  for (i=1;i<=N;i++) scanf ("%d",&A[i]);
      |                     ~~~~~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...