(SPOJ) 3087 - O Fantástico Jaspion! - Solução

import java.io.*;
import java.util.*;

class Main {
    public static void main(String[] args) throws NumberFormatException, IOException {
        Main processando = new Main();
        processando.processa();
       
        System.exit(0);
    }
   
    void processa() throws NumberFormatException, IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
       
        String line = br.readLine();
        StringTokenizer tokenizer = new StringTokenizer(line);
        int qteInstancias = Integer.parseInt(tokenizer.nextToken());
           
        for (int i = 0; i < qteInstancias; i++) {
            line = br.readLine();
            tokenizer = new StringTokenizer(line);
            int qtePares = Integer.parseInt(tokenizer.nextToken());
            int linhasMusica = Integer.parseInt(tokenizer.nextToken());
           
            Map<String, String> tradutor = new TreeMap<String, String>();
           
            // lê as palavras e suas traduções
            for (int j = 0; j < qtePares; j++) {
                String jaspion = br.readLine();
                String portugues = br.readLine();

                tradutor.put(jaspion, portugues);
            }
           
            for (int j = 0; j < linhasMusica; j++) {
                // lê frase que vai traduzir
                String jaspion = br.readLine();
                tokenizer = new StringTokenizer(jaspion);
                int tamFrase = tokenizer.countTokens();   
               
                // para cada palavra da frase lida, imprime a tradução 
                boolean jaImprimiu = false;
                String tmp = "";               
                for (int k = 0; k < tamFrase; k++) {
                    tmp = tokenizer.nextToken();
                    if (jaImprimiu) {
                        bw.write(" ");
                    }
                    if (tradutor.get(tmp) != null) {
                        bw.write(tradutor.get(tmp));
                    }
                    else {
                        bw.write(tmp); // se não tem tradução, imprime a palavra mesmo
                    }
                    jaImprimiu = true;
                }
                bw.write("\n");
            }
        }
       
        bw.flush();
        bw.close();
                           
        return;
    }
}

Comments

Popular posts from this blog

(Coderbyte) Powers of Two - Solução

(Coderbyte) Dash Insert II - Solução

(CoderByte) Number Search - Solução