結果

問題 No.1007 コイン集め
コンテスト
ユーザー ntk3264
提出日時 2020-04-03 03:49:04
言語 Java
(openjdk 25.0.2)
コンパイル:
javac -encoding UTF8 _filename_
実行:
java -ea -Xmx700m -Xss256M -DONLINE_JUDGE=true _class_
結果
AC  
実行時間 381 ms / 1,500 ms
コード長 1,269 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 1,621 ms
コンパイル使用メモリ 82,160 KB
実行使用メモリ 56,548 KB
最終ジャッジ日時 2026-03-17 17:06:51
合計ジャッジ時間 6,894 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge2_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 19
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

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