結果

問題 No.370 道路の掃除
ユーザー yun_app
提出日時 2016-05-17 10:23:28
言語 Java
(openjdk 23)
結果
AC  
実行時間 54 ms / 2,000 ms
コード長 1,205 bytes
コンパイル時間 2,270 ms
コンパイル使用メモリ 79,616 KB
実行使用メモリ 36,944 KB
最終ジャッジ日時 2024-10-14 16:54:50
合計ジャッジ時間 4,834 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 34
権限があれば一括ダウンロードができます

ソースコード

diff #

/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        // your code goes here
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] line = br.readLine().split(" ");
        int N = Integer.parseInt(line[0]);
        int M = Integer.parseInt(line[1]);
        
        ArrayList<Integer> gomi = new ArrayList<Integer>();
        for(int i=0;i<M;i++){
            gomi.add(Integer.parseInt(br.readLine()));
        }
        Collections.sort(gomi);
        int ans = Integer.MAX_VALUE;
        for(int i=0;i<M-N+1;i++){
            int sum = 0;
            int start = gomi.get(i);
            int goal  = gomi.get(i+N-1);
            if((start < 0 && goal > 0) 
            || (start > 0 && goal < 0)){
                sum += 2*Math.min(Math.abs(start),Math.abs(goal));
            }
            sum += Math.max(Math.abs(start),Math.abs(goal));
            ans = Math.min(ans,sum);
        }
        System.out.println(ans);
    }
}
0