Java中2个测试用例中的2个测试用例的NZEC运行时错误

时间:2014-10-29 03:25:11

标签: java arraylist runtime-error

我正在尝试解决有关Hackerearth的问题。比赛已经结束很久了。

http://www.hackerearth.com/lenskart-hiring-challenge/algorithm/big-p-and-punishment-5/description/

问题陈述

Big P已成为哈克国际学校的体育教师。

今天,第十二班的学生一直非常没有纪律,他决定全部惩罚他们。

他让所有N学生(编号为1到N)站成一条线,要求他们坐下来。

学生知道Big P是一个非常残忍和虐待狂的人,当他们看到朋友坐下时,学生们开始坐下来。

然而,总有一些学生不遵循这一趋势。现在当Big P看到这种情况发生时,他打了那个学生并让他坐下来。遵循上述相同的过程,当任何一个学生拒绝自己坐下时,他们就会停止。

鉴于学生们让Big P坐下来让他们坐下来,你需要告诉他们没有。那些坐在那条线上的学生。

注意:如果A是B的朋友,那么B也不是A的朋友。

输入格式: 第一行包含一个整数T,表示没有测试用例。每个测试用例以包含三个整数N,F,S的行开头,其中N是该行中学生的数量。接下来的F行有两个整数A和B表示学生A和B之间的友谊。接下来S行有一个整数X表示被Big P打耳的学生。

输出格式: 对于每个测试用例,输出一行包含一个整数,即在该行中坐下的学生总数。

[T <= 10,N,F,S <= 10000]

示例输入

1

3 2 1

1 2

2 3

2

示例输出

2

我为此编写了一个Java代码。

import java.io.*;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.Scanner;

import java.util.Arrays;


@SuppressWarnings("unchecked")



class Graph
{

static int visited[];

public static void main(String[] args) throws IOException
{



BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 


int testcases;

int N,F,S,n;

int a,b;

testcases=Integer.parseInt(br.readLine());

while(--testcases>=0)
{

String[] s = br.readLine().split(" ");  

N=Integer.parseInt(s[0]);

F=n=Integer.parseInt(s[1]);

S=Integer.parseInt(s[2]);



visited=new int[N+1];

Arrays.fill(visited,0);

ArrayList[] adj=new ArrayList[N+1];

while(--n>=0)
{


s = br.readLine().split(" ");  

a=Integer.parseInt(s[0]);

b=Integer.parseInt(s[1]);




if(adj[a]==null){

adj[a]=new ArrayList<Integer>();

}

(adj[a]).add(b);


}


int root;

for(int i=1;i<=S;i++)
{

root=Integer.parseInt(br.readLine());

dfs(adj,root);

}

int ans=0;

for(int i=1;i<=N;i++)
{

if(visited[i]==1){

++ans;

}

}

System.out.println(ans);


}

}


static void dfs(ArrayList adj[],int r)
{

int curr;

if(visited[r]!=1)
{



ArrayList base=adj[r];


if(base!=null)
{


Iterator itr=base.iterator();

while(itr.hasNext())
{

curr=(int)itr.next();

if(visited[curr]==0)
{

dfs(adj,curr);
}

}

}

visited[r]=1;
//System.out.println(r);

}

}

}

它传递给第一个测试用例,但是对剩下的测试用例给出了NZEC错误。

我尝试过更改:

  1. 使用过的Scanner代替Stream Reader。
  2. 删除静态数组
  3. 这些都没有帮助。

    请帮我识别故障。

0 个答案:

没有答案