Codi de programa


public class Contenidor {


       // DECLARACIO DE LA TUPLA!!
       public static class Resultat {
              boolean trobat;
              int pos;
       }
       // FI DE DECLARACIO!!

       private static inout io = new inout();

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

              int v[] = io.read_int_array();
              int w[] = io.read_int_array();

              Resultat r = HiEs(v, w);

              io.writeln(r.trobat);
              io.writeln(r.pos);

       }

       public static Resultat HiEs(int V[], int W[]) {

              /* {Pre: N>0; M>0, N i M són el nombre de components de V i W respectivament}
              * {Post: max = maxim (V[0] ... V[N-1]), sol.trobat => existeix un k entre [0.. M-1] tal que max=W[k], sol.pos=k} */

              int i, max;
              Resultat sol = new Resultat();

              max = V[0]; i = 1;
              // {Inv: max és el valor més gran en V[0]... V[i-1]; i entre [0..N]}
              while (i < V.length) {
                     if(V[i] > max) max = V[i];
                     i = i+1;
              }

              i = 0; sol.trobat = false;
              // {Inv: sol.trobat cert si max = W[i] ; no sol.trobat => max és diferent a(W[0] .. W[i-1]); i entre [0..M]}
              while(!sol.trobat && i < W.length) {
                     if(W[i] == max) sol.trobat = true;
                     else i = i + 1;
              }
              sol.pos = i;
              return sol;

       }

}
Enrera