Codi de programa


public class Ordenacio {


       // DECLARACIO DE LA TUPLA!!
       public static class result {
              int tipo;
              int max;
              int min;
       }
       // FI DE DECLARACIO!!

       private static inout io = new inout();

       public static void main(String args[]) throws Exception {

              result r = new result();

              int t[] = io.read_int_array();

              TipoDeOrden(t, r);

              io.writeln(r.tipo);
              io.writeln(r.max);
              io.writeln(r.min);

       }

       public static void TipoDeOrden (int T[], result r) {

              /* {Pre: N es el numero de componentes de T, N>=3}
              * {Post: r.tipo = tipo de orden dentro de la tabla,
              * r.max = valor maximo de los elementos de la tabla,
              * r.min = valor minimo de los elementos de la tabla} */

              int i;
              i = 0;

              r.tipo = -1;
              r.max = T[0];
              r.min = T[0];

              // {Inv: 0<= i <= N-1, r contiene el tipo, valor maximo y minimo de T [0..i-1]}
              while (i <= T.length-2) {
                     Orden (T, i, r);
                     if(T[i] > r.max) r.max = T[i];
                     if(T[i] < r.min) r.min = T[i];
                     i = i + 1;
              }

              if(T[i] > r.max) r.max = T[i];
              if(T[i] < r.min) r.min = T[i];

       }

       public static void Orden (int T1[], int i, result r) {

              /* {Pre:}
              * {Post: r.tipo contiene el tipo de orden de T[0..i+1]} */

              if(T1[i] < T1[i+1]) {
                     if(r.tipo == 1 || r.tipo == -1) {
                            r.tipo = 1;
                     } else if(r.tipo == 2 || r.tipo == -1) {
                            r.tipo = 2;
                     } else {
                            r.tipo = 0;
                     }
              }

              if(T1[i] > T1[i+1]) {
                     if(r.tipo == 3 || r.tipo == -1) {
                            r.tipo = 3;
                     } else if(r.tipo == 4 || r.tipo == -1) {
                            r.tipo = 4;
                     } else {
                            r.tipo = 0;
                     }
              }

              if(T1[i] == T1[i+1]) {
                     if(r.tipo == 1 || r.tipo == -1) {
                            r.tipo = 2;
                     } else if(r.tipo == 3 || r.tipo == -1) {
                            r.tipo = 4;
                     } else if(r.tipo == 2 || r.tipo == -1) {
                            r.tipo = 2;
                     } else if(r.tipo == 4 || r.tipo == -1) {
                            r.tipo = 4;
                     } else {
                            r.tipo = 0;
                     }
              }

       }

}
Enrera