无法识别代码中的nzec错误

时间:2014-12-10 16:55:23

标签: java exception runtime

我受到编码网站的以下问题的质疑:

=============================================== =================================== 给定K素数和形式Ai,Bi的T查询,对于每个查询打印Ai和Bi(包括两者)之间的整数数,这些整数可被K给定素数中的至少一个整除。

输入 第一行:K和T. 第二行:K素数。 接下来的T行,每行包含Ai,Bi。

输出 打印T行,表示每个T查询的答案。

约束 1≤K≤10 1≤T≤100 1≤A≤B≤109 每个素数≤107 样本输入(明文链接) 2 1 2 3 1 10 样本输出(明文链接) 7 说明 2,3,4,6,8,9,10是7个数字。

=============================================== ========================

当我运行以下代码(在系统编译器中)时,它运行良好,但是当我将它提交到站点时,所有测试用例都会抛出nzec运行时错误。遗憾的是,该网站不共享测试用例,但可以使用该问题创建它们。

任何人都可以解释为什么会出现nzec错误吗?我使用过Java,因此代码抛出了需要捕获的异常:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;

class TestClass {
public static void main(String args[] ) throws Exception {
    Scanner scan = new Scanner(System.in);

    String[] line1 = scan.nextLine().split(" ");

    int fPrime,first,last,count=0,cur;boolean duplicate=false;

    int K = Integer.parseInt(line1[0]);

    int T = Integer.parseInt(line1[1]);
    int[][] num=new int[2][T];
   // int arr[];

    String[] line2 = scan.nextLine().split(" ");     

    if(T<=100 )
    {
      for(int k=0;k<T;k++)
    {
        if(scan.hasNextLine())
        {
         String[] line3 = scan.nextLine().split(" ");   
        num[0][k] = Integer.parseInt(line3[0]);
        num[1][k] = Integer.parseInt(line3[1]);
    //  System.out.print("num0 = " + num[0][k]);
    //  System.out.println("num1 = " + num[1][k]);
        }
        else
        {
            System.out.println("Lines of Ai and Bi are missing. Make sure T lines exist");
        }
    }
    }
    else
    {
        System.out.print("Error! T>100");
    }

  if(T<=100)
  {
 for(int l = 0; l < T; l++)
  {                              
      first = num[0][l];
      last =  num[1][l];
      int arr[] = new int[last]; 
      cur=0;
    //   System.out.println("first = " +first);
      //  System.out.println("last = " +last);
    for(int i = first; i<=last; i++ )
    {

         for(int j = 0; j < K; j++)
    {
         fPrime = Integer.parseInt(line2[j]);
    //   System.out.println("fPrime = " +fPrime);
   if(( fPrime<=1000000) && (first<=1000000000 && last<=1000000000)){
        if(i%fPrime==0)
        {
            // System.out.println("Gotcha num " + i);
            for(int a = 0; a < arr.length; a++)
            {               
                     if (arr[a] == i)
                     {
                             duplicate=true;
                         //    System.out.print("arr"+a+" = " + i);
                     }                         
            }                                                       

                     if(duplicate==true)
                             {
                                        duplicate=false;      
                            }
                       else
                             {
                                 arr[cur++]=i;              
                                 count++;  
                              }
          }
    }
          else
          {
             System.out.println("Make Sure 1 ? A ? B ? 10^9 Each prime ? 10^7" );
          }
         }     

  }           
   System.out.println(count);
    }    
}
else System.out.println("T can not be greater than 100");
}

}

0 个答案:

没有答案