(SPOJ) 1367 - Proteja sua senha - Solução 2
import java.io.*;
import java.util.*;
class Main {
class Correspondencia {
public int[] num = new int[11];
}
public static void main(String[] args) throws NumberFormatException, IOException {
Main processando = new Main();
processando.processa();
System.exit(0);
}
void processa() throws NumberFormatException, IOException {
String line = "";
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int contaCaso = 0;
while ((line = br.readLine()) != null) {
StringTokenizer tokenizer = new StringTokenizer(line);
int qteLinhas = Integer.parseInt(tokenizer.nextToken());
if (qteLinhas == 0) {
return;
}
Correspondencia[] letras = new Correspondencia[10];
for (int i = 0; i < 10; i++) {
letras[i] = new Correspondencia();
}
String[] senha = new String[qteLinhas];
for (int i = 0; i < qteLinhas; i++) {
line = br.readLine();
tokenizer = new StringTokenizer(line);
for (int j = 0; j < 10; j++) { // lê os números
int num = Integer.parseInt(tokenizer.nextToken());
letras[i].num[j] = num;
}
senha[i] = "";
for (int j = 0; j < 6; j++) { // lê as letras
Character c = (tokenizer.nextToken()).charAt(0);
senha[i] += c;
}
}
contaCaso++;
System.out.println("Teste " + contaCaso);
int a = 0;
int resposta = 0;
for (int j = 0; j < 6; j++) {
int[] valor = new int[11];
int maior = -1;
for (int k = 0; k < qteLinhas; k++) {
char letra = senha[k].charAt(j);
a = (letra-'A')*2;
int contTmp = 0;
for (int i = a; contTmp < 2; i++) {
int indice = letras[k].num[i];
valor[indice]++;
if (valor[indice] > maior) {
maior = valor[indice];
resposta = indice;
}
contTmp++;
}
}
System.out.print(resposta + " ");
}
System.out.println("\n");
}
return;
}
}
import java.util.*;
class Main {
class Correspondencia {
public int[] num = new int[11];
}
public static void main(String[] args) throws NumberFormatException, IOException {
Main processando = new Main();
processando.processa();
System.exit(0);
}
void processa() throws NumberFormatException, IOException {
String line = "";
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int contaCaso = 0;
while ((line = br.readLine()) != null) {
StringTokenizer tokenizer = new StringTokenizer(line);
int qteLinhas = Integer.parseInt(tokenizer.nextToken());
if (qteLinhas == 0) {
return;
}
Correspondencia[] letras = new Correspondencia[10];
for (int i = 0; i < 10; i++) {
letras[i] = new Correspondencia();
}
String[] senha = new String[qteLinhas];
for (int i = 0; i < qteLinhas; i++) {
line = br.readLine();
tokenizer = new StringTokenizer(line);
for (int j = 0; j < 10; j++) { // lê os números
int num = Integer.parseInt(tokenizer.nextToken());
letras[i].num[j] = num;
}
senha[i] = "";
for (int j = 0; j < 6; j++) { // lê as letras
Character c = (tokenizer.nextToken()).charAt(0);
senha[i] += c;
}
}
contaCaso++;
System.out.println("Teste " + contaCaso);
int a = 0;
int resposta = 0;
for (int j = 0; j < 6; j++) {
int[] valor = new int[11];
int maior = -1;
for (int k = 0; k < qteLinhas; k++) {
char letra = senha[k].charAt(j);
a = (letra-'A')*2;
int contTmp = 0;
for (int i = a; contTmp < 2; i++) {
int indice = letras[k].num[i];
valor[indice]++;
if (valor[indice] > maior) {
maior = valor[indice];
resposta = indice;
}
contTmp++;
}
}
System.out.print(resposta + " ");
}
System.out.println("\n");
}
return;
}
}
Comments
Post a Comment