aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorInigoGutierrez <inigogf.95@gmail.com>2017-11-19 01:44:49 +0100
committerInigoGutierrez <inigogf.95@gmail.com>2017-11-19 01:44:49 +0100
commitda754a61fb874ea246c94ec44485d3634b3b2dd6 (patch)
tree5313d7c9288d54121fd3e850c38bcac6cf4ae9e9
parentedab23b87b5c029143c03e843045cd70b3b61463 (diff)
downloadAceptaElReto-da754a61fb874ea246c94ec44485d3634b3b2dd6.tar.gz
AceptaElReto-da754a61fb874ea246c94ec44485d3634b3b2dd6.zip
Problema 379 resuelto.
-rw-r--r--AceptaElReto/src/problemas/Problema379.java61
1 files changed, 61 insertions, 0 deletions
diff --git a/AceptaElReto/src/problemas/Problema379.java b/AceptaElReto/src/problemas/Problema379.java
new file mode 100644
index 0000000..826fac1
--- /dev/null
+++ b/AceptaElReto/src/problemas/Problema379.java
@@ -0,0 +1,61 @@
+package problemas;
+
+/*
+ * Ejemplos a tener en cuenta:
+ * 1 -> 2
+ * 1 2 3 4 5 -> 2 2 2 2 2
+ * 1 1 2 3 -> 1 2 2 2
+ * (En resumen: arrastrar cifra cambiada)
+ */
+
+public class Problema379 {
+
+ static java.util.Scanner in;
+
+ public static void main(String args[]) {
+ in = new java.util.Scanner(System.in);
+
+ int size = in.nextInt();
+ while ( size != 0 ) {
+ System.out.println(casoDePrueba(size));
+ size = in.nextInt();
+ }
+ }
+
+ public static String casoDePrueba(int size) {
+ int[] vector = new int[size];
+ for ( int i = 0; i < size; i++ ) {
+ vector[i] = in.nextInt();
+ }
+ if ( size == 1 ) {
+ return String.valueOf(vector[0] + 1);
+ }
+ int index = size - 1;
+ boolean updated = false;
+ while ( !updated ) {
+ if ( vector[index] == vector[index-1] ) {
+ vector[index]++;
+ for ( int i = index + 1; i < size; i++ ) {
+ vector[i] = vector[index];
+ }
+ updated = true;
+ }
+ index--;
+ if ( index == 0 && !updated ) {
+ vector[0]++;
+ for ( int i = 1; i < size; i++ ) {
+ vector[i] = vector[0];
+ }
+ updated = true;
+ }
+ }
+ String result = "";
+ for ( int i = 0; i < size; i++ ) {
+ result += vector[i];
+ if ( i != size - 1 ) {
+ result += " ";
+ }
+ }
+ return result;
+ }
+}