結果

問題 No.1007 コイン集め
ユーザー ntk3264
提出日時 2020-04-03 03:49:04
言語 Java
(openjdk 23)
結果
AC  
実行時間 596 ms / 1,500 ms
コード長 1,269 bytes
コンパイル時間 1,765 ms
コンパイル使用メモリ 77,020 KB
実行使用メモリ 49,892 KB
最終ジャッジ日時 2024-06-28 17:40:07
合計ジャッジ時間 9,729 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 19
権限があれば一括ダウンロードができます

ソースコード

diff #

import java.io.PrintWriter;
import java.util.*;

public class Main {

    Scanner sc = new Scanner(System.in);

    PrintWriter out = new PrintWriter(System.out);

    public static void main(String[] args) {
        new Main().run();
    }

    void run() {

        int n = sc.nextInt();
        int k = sc.nextInt()-1;

        int[] arr = new int[n];
        for (int i=0; i<n; i++) arr[i] = sc.nextInt();

        if (arr[k]==0) {
            out.print(0);
            out.flush();
            return;
        }

        long left = 0;
        long right = 0;

        long ans = 0;

        L:
        for (int i=k-1; i>=0; i--) {
            if (arr[i]==0) break L;
            if (arr[i]==1) {
                left++;
                break L;
            }
            left += arr[i];
        }

        R:
        for (int i=k+1; i<n; i++) {
            if (arr[i]==0) break R;
            if (arr[i]==1) {
                right++;
                break R;
            }
            right += arr[i];
        }

        if (arr[k]==1) {
            ans = (left<right) ? right+1 : left+1;
            out.print(ans);
            out.flush();
            return;
        }

        ans += left+right+arr[k];
        out.print(ans);
        out.flush();

    }

}
0