結果
| 問題 | No.366 ロボットソート | 
| コンテスト | |
| ユーザー |  ki_ki33 | 
| 提出日時 | 2016-04-29 23:30:45 | 
| 言語 | Java (openjdk 23) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 227 ms / 2,000 ms | 
| コード長 | 1,074 bytes | 
| コンパイル時間 | 2,292 ms | 
| コンパイル使用メモリ | 77,252 KB | 
| 実行使用メモリ | 42,740 KB | 
| 最終ジャッジ日時 | 2024-12-29 17:43:51 | 
| 合計ジャッジ時間 | 7,284 ms | 
| ジャッジサーバーID (参考情報) | judge4 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 23 | 
ソースコード
import java.io.BufferedInputStream;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
	static final long C =  1000000007;
	static final int CY = 1000000000;
	StringBuilder sb;
	public void calc() {
		sb = new StringBuilder();
		BufferedInputStream bs = new BufferedInputStream(System.in);
		Scanner sc = new Scanner(bs);
		int n = sc.nextInt();
		int k = sc.nextInt();
		int[][] a = new int[k][1+n/k];
		for (int i=0; i < k; i++) {
			Arrays.fill(a[i], Integer.MAX_VALUE);
		}
		for (int i=0; i < n; i++) {
			a[i%k][i/k] = sc.nextInt();
			//System.out.println(i%k+":"+i/k);
		}
		long ans = 0;
		for (int v = 0; v < k; v++) {
			for (int i=0; i < a[v].length; i++) {
				for (int t=0; t <i; t++) {
					if (a[v][i] == Integer.MAX_VALUE) break;
					if (a[v][i] < a[v][t]) ans++;
				}
			}
			Arrays.sort(a[v]);
		}
		for (int i=1; i < n; i++) {
			if (a[(i-1)%k][(i-1)/k] > a[i%k][i/k]){
				ans = -1;
				break;
			}
		}
		System.out.println(ans);
	}
	public static void main(String[] args) {
		Main main = new Main();
		main.calc();
	}
}
            
            
            
        