輸出要判斷輸入的這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