public class TresEnters {
// DECLARACIO DE LA TUPLA!!
public static class resultat {
boolean trobat;
int cont;
}
// FI DE DECLARACIO!!
private static inout io = new inout();
public static void main(String args[]) throws Exception {
int t1[] = io.read_int_array();
int t2[] = io.read_int_array();
resultat r = CercaTriple(t1, t2);
io.writeln(r.trobat);
io.writeln(r.cont);
}
public static resultat CercaTriple(int T[], int T2[]) {
/* {Pre: N és el nombre de components de T, N >=3, els elements de T2 són tots diferents}
* {Post: s.trobat => existeixen tres elements consecutius de T iguals als de T2 i s.cont és el nombre de
* vegades que T2 està en T; no s.trobat => T2 no està en T} */
int i;
boolean hies;
resultat s = new resultat();
s.trobat = false;
s.cont = 0;
i = 0;
// {Inv: 0 <= i <= N-2, s.trobat => T2 està en T, s.cont=nombre de cops que T2 està en T}
while (i <= T.length - 3) {
hies = TresIguals(T, i, T2);
if(hies) {
i = i + 3;
s.cont = s.cont + 1;
s.trobat = true;
} else {
i = i + 1;
}
}
return s;
}
public static boolean TresIguals (int T1[], int i, int T2[]) {
/* {Pre: 0<= i <=N-3}
* {Post: trobat <==> les tres components de T1 a partir de i són iguals a les de T2} */
boolean trobat;
trobat = (T1[i] == T2[0] && T1[i + 1] == T2[1] && T1[i + 2] == T2[2]);
return trobat;
}
} |