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