답안 #27840

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
27840 2017-07-14T07:52:52 Z 김동현(#1158) Sparklers (JOI17_sparklers) C++14
0 / 100
0 ms 2800 KB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

int n, k;
ll x[100010], t;

int can(ll v){
	int l = k - 1, r = k + 1, cnt = 0;
	ll s = x[k], e = x[k];
	for(int j = 0; j < n - 1; j++){
		int c;
		cnt++;
		if(l >= 1 && e - x[l] < x[r] - s) c = l--;
		else c = r++;
		s -= v * t; e += v * t;
		ll ts = x[c] - v * cnt * t, te = x[c] + v * cnt * t;
		s = max(s, ts);
		e = min(e, te);
		if(s > e) return 0;
	}
	return 1;
}

int main(){
	scanf("%d%d%lld", &n, &k, &t);
	for(int i = 1; i <= n; i++) scanf("%lld", x + i);
	ll s = 0, e = 2 * ((ll(1e9) + t - 1) / t);
	for(ll m; s <= e; ){
		m = (s + e) / 2;
		if(can(m)) e = m - 1;
		else s = m + 1;
	}
	printf("%lld\n", s);
}

Compilation message

sparklers.cpp: In function 'int main()':
sparklers.cpp:26:31: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d%lld", &n, &k, &t);
                               ^
sparklers.cpp:27:50: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  for(int i = 1; i <= n; i++) scanf("%lld", x + i);
                                                  ^
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 2800 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 2800 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 2800 KB Output isn't correct
2 Halted 0 ms 0 KB -