2011-02-03 2 views
-1

を変革ここで問題文です:CodeChefアレイプログラム

考えると、n個の数字は、次の操作を 何度でも行うことができます:0でどれも 数字の任意のサブセットを選択してください。 サブセットの番号を 1で減らし、 にない番号をKだけ増やします。 は、 のうち1つを除いた数字が0になるように操作できますか? 入力:最初の行には、 個のテストケースTが含まれています。T * 2 T行 が続き、それぞれ2件あります。テストケースの最初の 行には、数字nとKの が含まれています。次の行 には、n個の数字a_1 ... a_nが含まれています。出力 :出力T行.1行は、それぞれのテストケースが に対応します。テストケースの場合、 は、記述されているように 操作のシーケンスがある場合は "YES"を出力し、それ以外の場合は "NO" を出力します。

Sample Input : 
3 
2 1 
10 10 
3 2 
1 2 2 
3 2 
1 2 3 

Sample Output : 
YES 
YES 
NO 

Constraints : 
1 <= T <= 1000 
2 <= n <= 100 
1 <= K <= 10 
0 <= a_i <= 1000 

&ここに私のコードは次のとおりです。

import java.util.*; 

public class ArrayTransform { 
    public static void main(String args[]) { 
     Scanner sc = new Scanner(System.in); 
     int no_of_tests = sc.nextInt(); 

     int size; 
     int a[] = new int[100]; 
     boolean yes; 
     int j; 
     int k; 
     for (int i = 0; i < no_of_tests; i++) { 
      size = sc.nextInt(); 
      k = sc.nextInt(); 
      for (j = 0; j < size; j++) { 
       a[j] = sc.nextInt(); 
      } 
      yes = is_possible(a, size, k + 1); 
      if (yes) 
       System.out.println("YES\n"); 
      else 
       System.out.println("NO\n"); 
     } 
    } 

    static boolean is_possible(int a[], int size, int k_1) { 
     int count = 0; 
     int m[] = { -1, -1 }; 
     int mod; 
     for (int i = 0; i < size; i++) { 
      mod = a[i] % k_1; 
      if (m[0] != mod && m[1] != mod) { 
       if (m[0] == -1) 
        m[0] = mod; 
       else if (m[1] == -1) 
        m[1] = mod; 
       else 
        return false; 
      } 
     } 
     return true; 
    } 
} 
+3

質問はどこですか? – maaartinus

+0

申し訳ありません...私のコードで何が間違っていますか?なぜ私は間違った答えを得ていますか? – Chester

+2

あなたは何を試しましたか?これをどのようにデバッグに近づけましたか?どのような答えが正しいと思いますか?一度それを知って、あなたの論理エラーをトレースすることはかなり日常的でなければなりません。 –

答えて

3
if (m[0] != mod && m[1] != mod) 
ここ

の代わり&&||があるはずです。 mのうちの1つだけがmodと一致する必要があります。

関連する問題