(SPOJ) 20001 - Fila - Solução
Utilizado ArrayList, uma vez que com a utilização do vetor comum, o tempo limite era excedido.
O ArrayList possui o método remove() que, em uma de suas funções, permite excluir a primeira ocorrência de um elemento específico.
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 tamFilaInicio = leitor(br);
ArrayList<Integer> vetorFilaInicio = new ArrayList<Integer>();
for (int i = 0; i < tamFilaInicio; i++) {
vetorFilaInicio.add(leitor(br));
}
int sairamDaFila = leitor(br);
for (int i = 0; i < sairamDaFila; i++) {
vetorFilaInicio.remove((Integer)leitor(br));
}
int restamNaFila = tamFilaInicio - sairamDaFila;
for (int i = 0; i < restamNaFila-1; i++) {
bw.write(vetorFilaInicio.get(i) + " ");
}
bw.write(vetorFilaInicio.get(restamNaFila-1) + "\n");
bw.flush();
bw.close();
return;
}
}
O ArrayList possui o método remove() que, em uma de suas funções, permite excluir a primeira ocorrência de um elemento específico.
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 tamFilaInicio = leitor(br);
ArrayList<Integer> vetorFilaInicio = new ArrayList<Integer>();
for (int i = 0; i < tamFilaInicio; i++) {
vetorFilaInicio.add(leitor(br));
}
int sairamDaFila = leitor(br);
for (int i = 0; i < sairamDaFila; i++) {
vetorFilaInicio.remove((Integer)leitor(br));
}
int restamNaFila = tamFilaInicio - sairamDaFila;
for (int i = 0; i < restamNaFila-1; i++) {
bw.write(vetorFilaInicio.get(i) + " ");
}
bw.write(vetorFilaInicio.get(restamNaFila-1) + "\n");
bw.flush();
bw.close();
return;
}
}
Comments
Post a Comment