輸出要判斷輸入的這n個數字從左至右或從右至左都一樣,兩兩相減之差是否能夠成為一個1到n-1的連續數列。
例如說輸入4 1 4 2 3就是一個Jolly Jump
4是代表4個數,1跟4差3,4跟2差2,3跟2差1,它們差剛好可以排成一個1 2 3的數列
也就是我們所謂的1到n-1的連續數列,
我一開始搞錯這題義連續出了十幾個WA還不知道為什麼....唉
/** * Time(ZeroJudge):452ms * Date: 2010-1-29 * * @author Kurorido */ import java.util.Scanner; public class JAVA { public static void main(String[] args) { boolean debug = false; Scanner sc = new Scanner(System.in); while(sc.hasNext()) { if(debug) System.out.println("========case======="); int n = sc.nextInt(); if(debug) System.out.println("n = " + n); boolean[] set = new boolean[n]; if(n == 0 || n > 3000) break; int num1 = 0; int num2 = 0; num1 = sc.nextInt(); for(int i = 1; i < n; i++) { num2 = sc.nextInt(); if(debug) { System.out.println("num1 = " + num1); System.out.println("num2 = " + num2); } int diff = Math.abs(num2 - num1); if(debug) System.out.println( num2 + " - " + num1 + " diff = " + diff); if(diff < n && diff > 0) { set[diff] = true; } num1 = num2; } if(countTrue(set) == n -1) System.out.println("Jolly"); else System.out.println("Not jolly"); } } public static int countTrue(boolean[] set) { int count = 0; for(int i = 1; i < set.length; i++) { if(set[i] == true) count++; } return count; } }
一直想試試看很快的那個IO跟parseInt...結果都不能用...導致了一堆RE= =
No comments:
Post a Comment