class Personne{
    String nom;
    int jour, mois, année;

    Personne(String n, int j, int m, int a){
	this.nom = n; this.jour = j; this.mois = m; this.année = a;
    }

    public String toString(){
	return this.nom+" : "+this.jour+"/"+this.mois+"/"+this.année;
    }
}

class Compte{
    Personne p;
    int numéro;
    char typ;
    long montant;

    static int nbcomptes = 0;

    Compte(Personne p, char t, long m){
	this.p = p;
	this.numéro = nbcomptes++;
	this.typ = t;
	this.montant = m;
    }

    public String toString(){
	return this.p+": #"+this.numéro+" "+this.typ+" -> "+this.montant;
    }

    static void depot(Compte c, long m){
	c.montant += m;
    }

    static boolean retrait(Compte c, long m){
	if(m < c.montant) return false;
	c.montant -= m;
	return true;
    }
}

class Banque{
    static final int NBMAXCLIENTS = 500;
    static Compte[] tc = new Compte[NBMAXCLIENTS];
    static int nbclients;

    static void afficherClient(Personne p){
	for(int i = 0; i < nbclients; i++)
	    if(p.nom.compareTo(tc[i].p.nom) == 0)
		System.out.println(tc[i]);
    }

    static void afficher(){
	for(int i = 0; i < nbclients; i++)
	    System.out.println(tc[i]);
    }

    static public void main(String[] args){
	Personne bg = new Personne("Bill Gates", 28, 10, 1955);
	Personne op = new Personne("Oncle Picsou", 29, 12, 1930);

	tc[nbclients++] = new Compte(bg, 'c', (long)100000000);
	tc[nbclients++] = new Compte(op, 'c', (long)150000000);
	tc[nbclients++] = new Compte(bg, 'e', (long)400000000);
	tc[nbclients++] = new Compte(op, 'e', (long)200000000);
	afficherClient(bg);
	afficher();
    }
}

