Algoritmo em Java

Estou tentando resolver um algoritmo em Java, são minhas primeiras tentativas com Java por isso não sei muito bem.

O codigo é o seguinte…

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Map;
import java.util.StringTokenizer;

public class Spoj {
	/**
	 * @param args
	 */
	
	class Categoria
	{
		private  int nPalavras;
		private  Map<String, String> mapa;
		private  String nome;
		
		Categoria()
		{		
		}
		
		public void setQtdPalavras(int qtd)
		{
			this.nPalavras = qtd;
		}
		public int getQtdPalavras()
		{
			return this.nPalavras;
		}		
		public  void setNome(String nome)
		{
			this.nome = nome;
		}
		public String getNome()
		{
			return this.nome;
		}
		public void setMapa(Map<String, String> map)
		{
			this.mapa = map;
		}
		public Map<String, String> getMapa()
		{
			return this.mapa;
		}
		
	}
	
	public static void main(String[] args)throws Exception {

		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		String casos = in.readLine();		
		int caso = Integer.parseInt(casos),i,j,k;
		int categoria, qtdpalavras;
		
		StringTokenizer token;		
			
		ArrayList<Categoria> lista = new ArrayList<Categoria>();
		
		for(i=0;i<caso;i++)
		{
			casos = in.readLine();
			categoria= Integer.parseInt(casos);
			for(j=0;j<categoria;j++)
			{
				Categoria cat = (new Spoj()).new Categoria();  //Aqui esta dando erro....
				casos = in.readLine();
				token = new StringTokenizer(casos);		
											
				cat.setNome(token.nextToken());
				qtdpalavras = Integer.parseInt(token.nextToken());
				cat.setQtdPalavras(Integer.parseInt(token.nextToken()));
				
				for(k=0;k<qtdpalavras;k++)
				{
					casos = in.readLine();
					cat.getMapa().put(casos, casos);
				}				
				lista.add(cat);
			}
			while(true)
			{
				casos = in.readLine();
				if(casos.equals(""))
					break;
				else
				{
				
				}
			}			
		}
	}
}

Esta dando erro quando eu tento instanciar minha classe interna…não sei se pode ser talvez o Map que esteja errado ou outra coisa…
ClassNotFoundException… acho que estou instanciando errado ou esta faltando alguma coisa no construtor…
Agradeço a ajuda de quem puder ajudar…
Alguem teria um material sobre Java para maratonas de programação.???

Ate mais…

Não vejo nenhum problema na linha
que vc citou…

Foi isso que me responderam e realmente é, se eu continuar executando funciona normalmente.
Agradeço as respostas.