結果
問題 |
No.370 道路の掃除
|
ユーザー |
![]() |
提出日時 | 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 |
ソースコード
/* 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); } }