Posts

Showing posts from February, 2014

(SPOJ) 18550 - Troco - Solução

Solução utilizando o "problema da mochila". É possível ver como isso funciona através do link: http://pt.wikipedia.org/wiki/Problema_da_mochila 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);     }         static int leitor(BufferedReader br) throws NumberFormatException, IOException {         int n;         int resp = 0;                  while (true) {             n = br.read();             if (n >= '0' && n <= '9') break;         }         while (true) {             resp = resp*10 + n-'0';             n = br.read();             if (n < '0' || n > '9') break;         }                  return resp;          }     boolean funcao (int valorAtual, int[] moedas, int qteMoedas, int valorCompra, int posicao, boolean[][] tabelaVer

(SPOJ) 1390 - Mini-Poker - 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);     }          static int leitor(BufferedReader br) throws NumberFormatException, IOException {         int n;         int resp = 0;                  while (true) {             n = br.read();             if (n >= '0' && n <= '9') break;         }         while (true) {             resp = resp*10 + n-'0';             n = br.read();             if (n < '0' || n > '9') break;         }                  return resp;          }          void processa() throws NumberFormatException, IOException {         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));         BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));                  int qteCasos = leit

Estruturas

Exemplo de pilha: Stack<Character> pilha = new Stack<>(); (deprecated) Usar: Deque<Character> pilha = new ArrayDeque<>(); http://docs.oracle.com/javase/7/docs/api/java/util/Stack.html Usar um Stack é mais eficiente do que utilizar um ArrayList como se fosse uma pilha. Exemplo de lista: ArrayList<Integer> lista = new ArrayList<>(); http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html

Leitor de inteiros

static int leitor(BufferedReader br) throws NumberFormatException, IOException {         int n;         int resp = 0;         int sinal = 1;         while (true) {             n = br.read();             if (n >= '0' && n <= '9') break;             if (n == '-') sinal = -1;             if (n == '+') sinal = 1;         }         while (true) {             resp = resp*10 + n-'0';             n = br.read();             if (n < '0' || n > '9') break;         }         return resp*sinal; }

(SPOJ) 11014 - Expressões - Solução

import java.io.*; import java.util.*; import java.lang.*; class Main {     public static void main(String[] args) throws NumberFormatException, IOException {         Main processando = new Main();         processando.processa();                 System.exit(0);     }         static int leitor(BufferedReader br) throws NumberFormatException, IOException {         int n;         int resp = 0;         while (true) {             n = br.read();             if (n >= '0' && n <= '9')                 break;         }         while (true) {             resp = resp*10 + n-'0';             n = br.read();             if (n < '0' || n > '9')                 break;         }         return resp;     }         void processa() throws NumberFormatException, IOException {         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));         int contador = 0;         int numCasos = leitor(br)

(SPOJ) 3830 - Soma - Solução 2

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);     }        static int leitor(BufferedReader br) throws NumberFormatException, IOException {         int n;         int resp = 0;         int sinal = 1;         while (true) {             n = br.read();             if (n >= '0' && n <= '9') break;             if (n == '-') sinal = -1;             if (n == '+') sinal = 1;         }         while (true) {             resp = resp*10 + n-'0';             n = br.read();             if (n < '0' || n > '9') break;         }       //  System.out.println(resp*sinal);         return resp*sinal;     }        void processa() throws NumberFormatException, IOException {         BufferedReader br = new Buffer

(SPOJ) 840 - Cofrinhos da Vó Vitória - Solução 2

import java.io.*; import java.util.*; import java.lang.Math; import java.math.*; class Main {     public static void main(String[] args) throws NumberFormatException, IOException {         Main processando = new Main();         processando.processa();                 System.exit(0);     }         static int leitor(BufferedReader br) throws NumberFormatException, IOException {         int n;         int resp = 0;         while (true) {             n = br.read();             if (n >= '0' && n <= '9')                 break;         }         while (true) {             resp = resp*10 + n-'0';             n = br.read();             if (n < '0' || n > '9')                 break;         }         return resp;     }         void processa() throws NumberFormatException, IOException {         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));         int contador = 0;                int qte;         while((qte =

(SPOJ) 8697 - Pneu - Solução 2

import java.io.*; import java.util.*; import java.lang.Math; import java.math.*; class Main {     public static void main(String[] args) throws NumberFormatException, IOException {         Main processando = new Main();         processando.processa();                 System.exit(0);     }         static int leitor(BufferedReader br) throws NumberFormatException, IOException {         int n;         int resp = 0;         while (true) {             n = br.read();             if (n >= '0' && n <= '9')                 break;         }         while (true) {             resp = resp*10 + n-'0';             n = br.read();             if (n < '0' || n > '9')                 break;         }         return resp;     }         void processa() throws NumberFormatException, IOException {         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));                 int valor1 = leitor(br);         int valor2 = leitor(br

(SPOJ) 811 - Quermesse - Solução 2

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);     }         static int leitor(BufferedReader br) throws NumberFormatException, IOException {         int n;         int resp = 0;         while (true) {             n = br.read();             if (n >= '0' && n <= '9')                 break;         }         while (true) {             resp = resp*10 + n-'0';             n = br.read();             if (n < '0' || n > '9')                 break;         }         return resp;     }         void processa() throws NumberFormatException, IOException {         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));         int contador = 0;         int numParticipantes;         while ((numParticipantes = leitor(br)) != 0) {    

(SPOJ) 812 - Bits Trocados - Solução 2

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);     }         static int leitor(BufferedReader br) throws NumberFormatException, IOException {         int n;         int resp = 0;         while (true) {             n = br.read();             if (n >= '0' && n <= '9')                 break;         }         while (true) {             resp = resp*10 + n-'0';             n = br.read();             if (n < '0' || n > '9')                 break;         }         return resp;     }         void processa() throws NumberFormatException, IOException {         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));         BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));                 int valor = 0;

(SPOJ) 1333 - Sorvete - Solução

import java.io.*; import java.util.*; class Main {     class Resultado {         int inicio;         int fim;     }         public static void main(String[] args) throws NumberFormatException, IOException {         Main processando = new Main();         processando.processa();         System.exit(0);     }     static int leitor(BufferedReader br) throws NumberFormatException, IOException {         int n;         int resp = 0;         while (true) {             n = br.read();             if (n >= '0' && n <= '9')                 break;         }         while (true) {             resp = resp*10 + n-'0';             n = br.read();             if (n < '0' || n > '9')                 break;         }         return resp;     }     void processa() throws NumberFormatException, IOException {         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));         BufferedWriter b

(SPOJ) 11631 - Número de Envelopes - Solução Java

Esta solução não passa no SPOJ devido ao limite de tempo, mas as respostas estão corretas. Para tentar diminuir o tempo, lê-se a 2ª linha de entrada como se esta fosse uma string e posteriormente cada número é lido a partir da string. 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);     }         static int leitor(BufferedReader br) throws NumberFormatException, IOException {         int n;         int resp = 0;                  while (true) {             n = br.read();             if (n >= '0' && n <= '9')                 break;         }         while (true) {             resp = resp*10 + n-'0';             n = br.read();             if (n < '0' || n > '9')                 break;         }                  return resp;     }        

(SPOJ) 11631 - Número de Envelopes - Solução C

Esta solução teve que ser implementada em C devido ao limite de tempo. #include<stdio.h>     int main() {     int qteRotulos;     scanf("%d", &qteRotulos);         int tiposBalas;     scanf("%d", &tiposBalas);         int balas[tiposBalas];         int i;     for (i = 0; i < tiposBalas; i++) {         balas[i] = 0;     }         int indice;     for (i = 0; i < qteRotulos; i++) {         scanf("%d", &indice);         balas[indice-1] += 1;     }         int menor = 1000000;     for (i = 0; i < tiposBalas; i++) {         if (balas[i] < menor) {             menor = balas[i];         }     }     printf("%d\n", menor);         return 0; }

(SPOJ) 1763 - Sudoku - 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);     }          static int leitor(BufferedReader br) throws NumberFormatException, IOException {         int n;         int resp = 0;         int sinal = 1;                  while (true) {             n = br.read();             if (n >= '0' && n <= '9') break;             if (n == '-') sinal = -1;             if (n == '+') sinal = 1;         }         while (true) {             resp = resp*10 + n-'0';             n = br.read();             if (n < '0' || n > '9') break;         }                  return resp*sinal;          }          int[][] leMatriz(BufferedReader br) throws NumberFormatException, IOException {         int[][] matriz = new int[9][9];                 for (i

(SPOJ) 8314 - Fórmula 1 - 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);     }         static int leitor(BufferedReader br) throws NumberFormatException, IOException {         int n;         int resp = 0;         int sinal = 1;         while (true) {             n = br.read();             if (n >= '0' && n <= '9') break;             if (n == '-') sinal = -1;             if (n == '+') sinal = 1;         }         while (true) {             resp = resp*10 + n-'0';             n = br.read();             if (n < '0' || n > '9') break;         }         return resp*sinal;     }         void processa() throws NumberFormatException, IOException {         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));         BufferedWriter bw

(SPOJ) 3244 - Divisão da Nlogônia - 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);     }         static int leitor(BufferedReader br) throws NumberFormatException, IOException {         int n;         int resp = 0;         int sinal = 1;         while (true) {             n = br.read();             if (n >= '0' && n <= '9') break;             if (n == '-') sinal = -1;             if (n == '+') sinal = 1;         }         while (true) {             resp = resp*10 + n-'0';             n = br.read();             if (n < '0' || n > '9') break;         }         return resp*sinal;     }         void processa() throws NumberFormatException, IOException {         BufferedReader br = new BufferedReader(new InputStreamReader(System.in

(SPOJ) 2281 - Rumo aos 9s - 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 {         String line = "";                 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));         BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));         while((line = br.readLine()) != null) {             if (line.charAt(0) == '0' && line.length() == 1) {                 return;             }                         String leituraTmp = line;                         int soma = 0;             int contador = 0;             boolean multiplo = false;             boolean finaliza = false;             while (!finaliza) {                 soma = 0;                 for (int i =

(SPOJ) 5474 - Alarme Despertador - 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);     }         static int leitor(BufferedReader br) throws NumberFormatException, IOException {         int n;         int resp = 0;         while (true) {             n = br.read();             if (n >= '0' && n <= '9') {                 break;             }         }         while (true) {             resp = resp*10 + n-'0';             n = br.read();             if (n < '0' || n > '9') {                 break;             }         }         return resp;     }         void processa() throws NumberFormatException, IOException {         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));         BufferedWriter bw = new BufferedWriter(new