Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.*;
- import java.util.Scanner;
- public class Main {
- public static void main(String[] args) {
- Scanner in=new Scanner(System.in);
- int vagas,numVaga,chave,vagasOcupadas = 0,vagasOcupadasReal = 0,distMax1 = 0,distMax2 = 0;
- float Fmin,Fmax;
- String linha = "",placa = "";
- vagas = in.nextInt();
- Fmin = in.nextInt();
- Fmax = in.nextInt();
- int vagasMin = vagas;
- String[] park1=new String[x];
- String[] park2=new String[x];
- linha = in.nextLine();
- while (in.hasNext() && !linha.equals("END") {
- if (linha.charAt(0) == 'I') {
- boolean stop = false;
- if (vagasOcupadas/vagas > Fmax) {
- vagas = vagas * 2;
- String[] park3 = new String [vagas];
- for (int i = 0; i < park1.length ;i++) {
- if (park1[i] != null && park1[i].charAt(0) != 'i')) {
- int numVagaAux = chave(park1[i]) % vagas;
- if (park3[numVagaAux] == null) {
- park3[numVagaAux] = park1[i];
- } else {
- for (int j = 1 ; !stop ; j++) {
- if (park3[(numVagaAux + j) % vagas] == null) {
- park3[(numVagaAux + j) % vagas] = park1[i];
- stop = true;
- }
- }
- }
- }
- }
- park1 = park3.clone();
- }
- placa = linha.substring(3);
- numVaga = chave(placa) % vagas;
- stop = false;
- if (park1[numVaga] == null) {
- park1[numVaga] = placa;
- } else {
- for (int x = 1 ; !stop ; x++) {
- if (park1[(numVaga + x) % vagas] == null) {
- park1[(numVaga + x) % vagas] = placa;
- stop = true;
- }
- }
- }
- vagasOcupadas++;
- vagasOcupadasReal++;
- } else if (linha.charAt(0) == 'O') {
- boolean stop = false;
- placa = linha.substring(4);
- numVaga = chave(placa) % vagas;
- if (park1[numVaga] != null && park1[numVaga].equals(placa)) {
- park1[numVaga] = "indisponivel";
- } else {
- for (int x = 1 ; !stop ; x++) {
- if (park1[(numVaga + x) % vagas] != null && park1[(numVaga + x) % vagas].equals(placa)) {
- stop = true;
- park1[(numVaga + x) % vagas] = "indisponivel";
- }
- }
- }
- vagasOcupadasReal--;
- if (vagasOcupadasReal/vagas < Fmin) {
- if (vagas != vagasMin) {
- vagas = vagas/2;
- }
- String[] park3 = new String [vagas];
- for (int i = 0; i < park1.length ;i++) {
- if (park1[i] != null && park1[i].charAt(0) != 'i')) {
- int numVagaAux = chave(park1[i]) % vagas;
- if (park3[numVagaAux] == null) {
- park3[numVagaAux] = park1[i];
- } else {
- for (int j = 1 ; !stop ; j++) {
- if (park3[(numVagaAux + j) % vagas] == null) {
- park3[(numVagaAux + j) % vagas] = park1[i];
- stop = true;
- }
- }
- }
- }
- }
- vagasOcupadas = vagasOcupadasReal;
- }
- }
- }
- }
- public static int chave(String placa) {
- int chave = (placa.charAt(0) - 'A') + (placa.charAt(1) - 'A')*26 + (placa.charAt(2) - 'A')*Math.pow(26,2) + (placa.charAt(3) - 'A')*Math.pow(26,3) + (placa.charAt(4) - 'A')*Math.pow(26,4) + (placa.charAt(5) - 'A')*Math.pow(26,5);
- return chave;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement