結果
| 問題 |
No.366 ロボットソート
|
| コンテスト | |
| ユーザー |
kenji_shioya
|
| 提出日時 | 2016-05-27 17:58:16 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 226 ms / 2,000 ms |
| コード長 | 1,220 bytes |
| コンパイル時間 | 4,612 ms |
| コンパイル使用メモリ | 77,008 KB |
| 実行使用メモリ | 42,584 KB |
| 最終ジャッジ日時 | 2024-12-29 17:57:04 |
| 合計ジャッジ時間 | 9,668 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 23 |
ソースコード
import java.util.*;
public class Exercises22{
public static void main (String[] args){
Scanner sc = new Scanner(System.in);
int size = sc.nextInt();
int armWidth = sc.nextInt();
int[] array = new int[size];
for (int n = 0; n < size; n++){
array[n] = sc.nextInt();
}
int count = 0;
boolean flag = true;
for (int a = 0; a < armWidth; a++){
for (int k = a; k < getLastIndex(a, size, armWidth); k += armWidth){
for(int i = getLastIndex(a, size, armWidth); k < i; i -= armWidth){
if (array[i] < array[i - armWidth]){
int w = array[i];
array[i] = array[i - armWidth];
array[i - armWidth] = w;
count++;
}
}
}
}
for (int n = 1; n < size; n++){
if (array[n - 1] <= array[n]){
flag = true;
}else{
flag = false;
break;
}
}
if(flag == true){
System.out.println(count);
}else{
System.out.println(-1);
}
}
private static int getLastIndex(int a, int size, int armWidth){
int extr = 0;
if (size % armWidth > a){
extr = 1;
}
return (size / armWidth - 1 + extr) * armWidth + a;
}
}
kenji_shioya