結果

問題 No.871 かえるのうた
ユーザー face4
提出日時 2019-06-11 22:23:09
言語 Java
(openjdk 23)
結果
AC  
実行時間 1,133 ms / 2,000 ms
コード長 1,059 bytes
コンパイル時間 2,198 ms
コンパイル使用メモリ 76,700 KB
実行使用メモリ 59,616 KB
最終ジャッジ日時 2024-11-30 10:44:13
合計ジャッジ時間 26,142 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 49
権限があれば一括ダウンロードができます

ソースコード

diff #

import java.io.IOException;
import java.util.Scanner;

class Main{
    public static void main(String args[]) throws IOException{
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt(), k = sc.nextInt()-1;
        long x[] = new long[n];
        long a[] = new long[n];
        for(int i = 0; i < n; i++){
            x[i] = sc.nextLong();
        }
        for(int i = 0; i < n; i++){
            a[i] = sc.nextLong();
        }
        int l = k, r = k;
        long ld = x[k]-a[k], rd = x[k]+a[k];
        boolean update = true;
        while(update){
            update = false;
            while(l-1 >= 0 && ld <= x[l-1]){
                update = true;
                l--;
                ld = Math.min(ld, x[l]-a[l]);
                rd = Math.max(rd, x[l]+a[l]);
            }
            while(r+1 < n && x[r+1] <= rd){
                update = true;
                r++;
                rd = Math.max(rd, x[r]+a[r]);
                ld = Math.min(ld, x[r]-a[r]);
            }
        }
        System.out.println(r-l+1);
    }
}
0