/* package whatever; // don't place package name! */ import java.util.*; import java.lang.*; import java.io.*; // プログラミングのお題スレ Part16 //mevius.5ch.net/test/read.cgi/tech/1573948822/4 // 4 名前:デフォルトの名無しさん[sage] 投稿日:2019/11/18(月) 02:35:04.18 ID:t9gVOJNg // お題: // https://i...content-available-to-author-only...r.com/JsMU4uh.jpg // 明度が0~9までのグレーの四角がグラデーション状に横並びにならんでいるとします // この状態だと隣接している四角と四角の明度の差が少ないので境目が見えづらいです // 全ての四角同士の明度差ができるだけ大きくなるように並び替えるにはどういうロジックが考えられるでしょう? // 四角の数が増えても対応できるような汎用的なロジックが望ましいです // 両端は固定のままが理想ですが必須要件ではありません // // ・ボツ例:1~4まで一つおきに左右端を入れ替える // (1) 1と8を入れ替える // (2) 2と7はそのまま // (3) 3と6を入れ替える // (4) 4と5はそのまま // ※これだと4と5が隣り合ったままで明度差が少ない箇所が残るので最適解ではない class Ideone { { for(int i = 8; i <= 12; i++) } static int[] gen(int n) { int[] array = new int[n]; for (int i = 0; i < n; i++) array[i] = i + (i & 1) * n >> 1; return array; } }
Standard input is empty
[0, 4, 1, 5, 2, 6, 3, 7] [0, 5, 1, 6, 2, 7, 3, 8, 4] [0, 5, 1, 6, 2, 7, 3, 8, 4, 9] [0, 6, 1, 7, 2, 8, 3, 9, 4, 10, 5] [0, 6, 1, 7, 2, 8, 3, 9, 4, 10, 5, 11]