結果

問題 No.871 かえるのうた
ユーザー @abcde
提出日時 2019-08-30 22:03:06
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 1,110 bytes
コンパイル時間 1,876 ms
コンパイル使用メモリ 165,832 KB
実行使用メモリ 5,248 KB
最終ジャッジ日時 2024-11-21 23:32:55
合計ジャッジ時間 11,928 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 5 WA * 43 TLE * 1
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

#include <bits/stdc++.h>
using namespace std;
using LL = long long;
LL x[111111], a[111111];
int main(){
// 1. .
int N, K;
scanf("%d %d", &N, &K);
K--;
for(int i = 0; i < N; i++) scanf("%lld", &x[i]);
for(int i = 0; i < N; i++) scanf("%lld", &a[i]);
// 2. .
LL minL = x[K] - a[K];
int indexL = max(0, K - 1);
while(1){
LL l = 1e17;
int index = 0;
for(int i = indexL; i >= 0; i--) if(l >= minL) l = min(l, x[i] - a[i]), index = i;
if(l < minL) minL = l;
if(index == 0) break;
else indexL = index;
}
// 3. .
LL maxR = x[K] + a[K];
int indexR = min(K + 1, N - 1);
while(1){
LL r = -1e17;
int index = 0;
for(int i = indexR; i < N; i++) if(r >= maxR) r = max(r, x[i] - a[i]), index = i;
if(r > maxR) maxR = r;
if(index == 0) break;
else indexR = index;
}
// 4. .
printf("%d\n", indexR - indexL + 1);
return 0;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0