# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
232700 | 2020-05-17T21:28:49 Z | thebes | Sparklers (JOI17_sparklers) | C++14 | 5 ms | 384 KB |
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int> pii; typedef vector<int> vi; #define F first #define S second #define pb push_back const int MN = 1e5+5; int N, K, T, i, l, r, arr[MN], lo, hi, mid, fl; double t, tmp; int main(){ scanf("%d%d%d",&N,&K,&T); for(i=1;i<=N;i++) scanf("%d",&arr[i]); if(arr[N]==0){ printf("0\n"); return 0; } lo=1, hi=1e9; while(lo<hi){ mid=(lo+hi)>>1; l = r = K; t = T; fl = 0; while(r<N||l>0){ double t1=2e9, t2=2e9; if(r<N) t1=(arr[r+1]-arr[r])/(double)(2*mid); if(l>0) t2=(arr[l]-arr[l-1])/(double)(2*mid); if(t<min(t1,t2)){fl=1; break;} if(t1<t2){ t += T-t1; r++; } else{ t += T-t2; l--; } } if(fl) lo=mid+1; else hi=mid; } printf("%d\n",lo); return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 256 KB | Output is correct |
2 | Incorrect | 5 ms | 384 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 256 KB | Output is correct |
2 | Incorrect | 5 ms | 384 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 256 KB | Output is correct |
2 | Incorrect | 5 ms | 384 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |