import java.util.*;
public class Main {
public static void main
(String[] args
) { Scanner sc
= new Scanner
(System.
in); BDAutomovil baseDatos = new BDAutomovil();
if (!sc.hasNextLine()) return;
String operacion
= sc.
nextLine().
trim();
if (!sc.hasNextLine()) return;
String[] datos
= sc.
nextLine().
split("\\s+");
if (datos.length < 5) {
return;
}
try {
int codigo
= Integer.
parseInt(datos
[0]); int kilometraje
= Integer.
parseInt(datos
[4]);
Automovil autoIngresado = new Automovil(codigo, marca, placa, modelo, kilometraje);
ejecutarOperacion(operacion, autoIngresado, baseDatos);
System.
out.
println("ERROR"); // Por si el código o kilometraje no son números }
}
private static void ejecutarOperacion
(String op, Automovil auto, BDAutomovil bd
) { boolean existe = bd.verificarExistencia(auto.getCodigo());
if (op.equalsIgnoreCase("Agregar") && !existe) {
bd.agregar(auto);
bd.imprimirInventario();
}
else if (op.equalsIgnoreCase("Actualizar") && existe) {
bd.actualizar(auto);
bd.imprimirInventario();
}
else {
}
}
}
class Automovil {
private int codigo;
private int kilometraje;
public Automovil
(int codigo,
String marca,
String placa,
String modelo,
int kilometraje
) { this.codigo = codigo;
this.marca = marca;
this.placa = placa;
this.modelo = modelo;
this.kilometraje = kilometraje;
}
public int getCodigo() { return codigo; }
public String getMarca
() { return marca
; } public String getPlaca
() { return placa
; } public String getModelo
() { return modelo
; } public int getKilometraje() { return kilometraje; }
@Override
return codigo + " " + marca + " " + placa + " " + modelo + " " + kilometraje;
}
}
class BDAutomovil {
private Map
<Integer, Automovil
> inventario
= new TreeMap
<>();
public BDAutomovil() {
inventario.put(1, new Automovil(1, "Mazda", "123-abc", "MX-5", 0));
inventario.put(2, new Automovil(2, "vw", "321-cba", "jetta", 23));
}
public boolean verificarExistencia(int codigo) {
return inventario.containsKey(codigo);
}
public void agregar(Automovil auto) {
inventario.put(auto.getCodigo(), auto);
}
public void actualizar(Automovil auto) {
inventario.put(auto.getCodigo(), auto); // put reemplaza si la llave ya existe
}
public void imprimirInventario() {
for (Automovil a : inventario.values()) {
System.
out.
println(a.
toString()); }
}
}
aW1wb3J0IGphdmEudXRpbC4qOwoKcHVibGljIGNsYXNzIE1haW4gewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIFNjYW5uZXIgc2MgPSBuZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwogICAgICAgIEJEQXV0b21vdmlsIGJhc2VEYXRvcyA9IG5ldyBCREF1dG9tb3ZpbCgpOwoKICAgICAgIAogICAgICAgIGlmICghc2MuaGFzTmV4dExpbmUoKSkgcmV0dXJuOwogICAgICAgIFN0cmluZyBvcGVyYWNpb24gPSBzYy5uZXh0TGluZSgpLnRyaW0oKTsKCiAgICAgICAKICAgICAgICBpZiAoIXNjLmhhc05leHRMaW5lKCkpIHJldHVybjsKICAgICAgICBTdHJpbmdbXSBkYXRvcyA9IHNjLm5leHRMaW5lKCkuc3BsaXQoIlxccysiKTsKCiAgICAgICAgCiAgICAgICAgaWYgKGRhdG9zLmxlbmd0aCA8IDUpIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFUlJPUiIpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICB0cnkgewogICAgICAgICAgICBpbnQgY29kaWdvID0gSW50ZWdlci5wYXJzZUludChkYXRvc1swXSk7CiAgICAgICAgICAgIFN0cmluZyBtYXJjYSA9IGRhdG9zWzFdOwogICAgICAgICAgICBTdHJpbmcgcGxhY2EgPSBkYXRvc1syXTsKICAgICAgICAgICAgU3RyaW5nIG1vZGVsbyA9IGRhdG9zWzNdOwogICAgICAgICAgICBpbnQga2lsb21ldHJhamUgPSBJbnRlZ2VyLnBhcnNlSW50KGRhdG9zWzRdKTsKCiAgICAgICAgICAgIEF1dG9tb3ZpbCBhdXRvSW5ncmVzYWRvID0gbmV3IEF1dG9tb3ZpbChjb2RpZ28sIG1hcmNhLCBwbGFjYSwgbW9kZWxvLCBraWxvbWV0cmFqZSk7CgogICAgICAgICAgCiAgICAgICAgICAgIGVqZWN1dGFyT3BlcmFjaW9uKG9wZXJhY2lvbiwgYXV0b0luZ3Jlc2FkbywgYmFzZURhdG9zKTsKCiAgICAgICAgfSBjYXRjaCAoTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGUpIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFUlJPUiIpOyAvLyBQb3Igc2kgZWwgY8OzZGlnbyBvIGtpbG9tZXRyYWplIG5vIHNvbiBuw7ptZXJvcwogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGVqZWN1dGFyT3BlcmFjaW9uKFN0cmluZyBvcCwgQXV0b21vdmlsIGF1dG8sIEJEQXV0b21vdmlsIGJkKSB7CiAgICAgICAgYm9vbGVhbiBleGlzdGUgPSBiZC52ZXJpZmljYXJFeGlzdGVuY2lhKGF1dG8uZ2V0Q29kaWdvKCkpOwoKICAgICAgICBpZiAob3AuZXF1YWxzSWdub3JlQ2FzZSgiQWdyZWdhciIpICYmICFleGlzdGUpIHsKICAgICAgICAgICAgYmQuYWdyZWdhcihhdXRvKTsKICAgICAgICAgICAgYmQuaW1wcmltaXJJbnZlbnRhcmlvKCk7CiAgICAgICAgfSAKICAgICAgICBlbHNlIGlmIChvcC5lcXVhbHNJZ25vcmVDYXNlKCJBY3R1YWxpemFyIikgJiYgZXhpc3RlKSB7CiAgICAgICAgICAgIGJkLmFjdHVhbGl6YXIoYXV0byk7CiAgICAgICAgICAgIGJkLmltcHJpbWlySW52ZW50YXJpbygpOwogICAgICAgIH0gCiAgICAgICAgZWxzZSB7CiAgICAgICAgICAKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFUlJPUiIpOwogICAgICAgIH0KICAgIH0KfQoKCmNsYXNzIEF1dG9tb3ZpbCB7CiAgICBwcml2YXRlIGludCBjb2RpZ287CiAgICBwcml2YXRlIFN0cmluZyBtYXJjYTsKICAgIHByaXZhdGUgU3RyaW5nIHBsYWNhOwogICAgcHJpdmF0ZSBTdHJpbmcgbW9kZWxvOwogICAgcHJpdmF0ZSBpbnQga2lsb21ldHJhamU7CgogICAgcHVibGljIEF1dG9tb3ZpbChpbnQgY29kaWdvLCBTdHJpbmcgbWFyY2EsIFN0cmluZyBwbGFjYSwgU3RyaW5nIG1vZGVsbywgaW50IGtpbG9tZXRyYWplKSB7CiAgICAgICAgdGhpcy5jb2RpZ28gPSBjb2RpZ287CiAgICAgICAgdGhpcy5tYXJjYSA9IG1hcmNhOwogICAgICAgIHRoaXMucGxhY2EgPSBwbGFjYTsKICAgICAgICB0aGlzLm1vZGVsbyA9IG1vZGVsbzsKICAgICAgICB0aGlzLmtpbG9tZXRyYWplID0ga2lsb21ldHJhamU7CiAgICB9CgoKICAgIHB1YmxpYyBpbnQgZ2V0Q29kaWdvKCkgeyByZXR1cm4gY29kaWdvOyB9CiAgICBwdWJsaWMgU3RyaW5nIGdldE1hcmNhKCkgeyByZXR1cm4gbWFyY2E7IH0KICAgIHB1YmxpYyBTdHJpbmcgZ2V0UGxhY2EoKSB7IHJldHVybiBwbGFjYTsgfQogICAgcHVibGljIFN0cmluZyBnZXRNb2RlbG8oKSB7IHJldHVybiBtb2RlbG87IH0KICAgIHB1YmxpYyBpbnQgZ2V0S2lsb21ldHJhamUoKSB7IHJldHVybiBraWxvbWV0cmFqZTsgfQoKICAgIEBPdmVycmlkZQogICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKICAgICAgICByZXR1cm4gY29kaWdvICsgIiAiICsgbWFyY2EgKyAiICIgKyBwbGFjYSArICIgIiArIG1vZGVsbyArICIgIiArIGtpbG9tZXRyYWplOwogICAgfQp9CgoKY2xhc3MgQkRBdXRvbW92aWwgewogICAgCiAgICBwcml2YXRlIE1hcDxJbnRlZ2VyLCBBdXRvbW92aWw+IGludmVudGFyaW8gPSBuZXcgVHJlZU1hcDw+KCk7CgogICAgcHVibGljIEJEQXV0b21vdmlsKCkgewogICAgICAgCiAgICAgICAgaW52ZW50YXJpby5wdXQoMSwgbmV3IEF1dG9tb3ZpbCgxLCAiTWF6ZGEiLCAiMTIzLWFiYyIsICJNWC01IiwgMCkpOwogICAgICAgIGludmVudGFyaW8ucHV0KDIsIG5ldyBBdXRvbW92aWwoMiwgInZ3IiwgIjMyMS1jYmEiLCAiamV0dGEiLCAyMykpOwogICAgfQoKICAgIHB1YmxpYyBib29sZWFuIHZlcmlmaWNhckV4aXN0ZW5jaWEoaW50IGNvZGlnbykgewogICAgICAgIHJldHVybiBpbnZlbnRhcmlvLmNvbnRhaW5zS2V5KGNvZGlnbyk7CiAgICB9CgogICAgcHVibGljIHZvaWQgYWdyZWdhcihBdXRvbW92aWwgYXV0bykgewogICAgICAgIGludmVudGFyaW8ucHV0KGF1dG8uZ2V0Q29kaWdvKCksIGF1dG8pOwogICAgfQoKICAgIHB1YmxpYyB2b2lkIGFjdHVhbGl6YXIoQXV0b21vdmlsIGF1dG8pIHsKICAgICAgICBpbnZlbnRhcmlvLnB1dChhdXRvLmdldENvZGlnbygpLCBhdXRvKTsgLy8gcHV0IHJlZW1wbGF6YSBzaSBsYSBsbGF2ZSB5YSBleGlzdGUKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBpbXByaW1pckludmVudGFyaW8oKSB7CiAgICAgICAgZm9yIChBdXRvbW92aWwgYSA6IGludmVudGFyaW8udmFsdWVzKCkpIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGEudG9TdHJpbmcoKSk7CiAgICAgICAgfQogICAgfQp9