//determinar padres solteros
//==========================

import java.io.*;
class RegCivil
{
static public void main(String[]args)throws IOException
{
//pareo 1: personas con matrimonios para determinar solteros

//declarar archivos (tablas) y registros (filas)
BufferedReader Matrimonios = new BufferedReader(new FileReader("matrimonios.dat")),
               Personas = new BufferedReader(new FileReader("personas.dat"));
PrintWriter Aux = new PrintWriter(new FileWriter("aux"));

Matrimonio matrimonio = new Matrimonio();
Persona persona = new Persona();

//repetir hasta terminar algun archivo
boolean okM = matrimonio.leer(Matrimonios), 
        okP = persona.leer(Personas);

while( okP && okM )		
{
	//comparar cedulas
        int cmp = persona.cedula.compareTo(matrimonio.cedulaEsposo);

	//caso 1: cedula persona < cedula esposo
        if( cmp < 0 ){
		if( persona.sexo.equals("m") )
			persona.escribir(Aux);			
                okP = persona.leer(Personas);
	}
	//caso 2: cedula persona > cedula esposo
        else if( cmp > 0 )				
                okM = matrimonio.leer(Matrimonios);
	//caso 3: cedulas iguales
        else{
                okP = persona.leer(Personas);	
                okM = matrimonio.leer(Matrimonios);
        }
}
//traspasar ultimos solteros
while( okP )
{
	if( persona.sexo.equals("m") )
		persona.escribir(Aux);
	okP = persona.leer(Personas);
}
Aux.close();

//pareo 2: Hijos con  solteros
//============================

//declarar archivos (tablas) y registros (filas)
BufferedReader Hijos = new BufferedReader(new FileReader("hijos.dat")),
               Aux1 = new BufferedReader(new FileReader("aux"));
PrintWriter Solteros = new PrintWriter(new FileWriter("padres-solteros.dat"));

Hijo hijo = new Hijo();

//repetir hasta terminar algun archivo
boolean okH = hijo.leer(Hijos), 
        okA = persona.leer(Aux1);

while( okA && okH )
{
	//comparar cedulas
        int cmp = hijo.cedula.compareTo(persona.cedula);

	//caso 1: cedula padre < cedula persona
        if( cmp < 0 )			
                okH = hijo.leer(Hijos);
	//caso 2: cedula padre > cedula persona
        else if( cmp > 0 )			
                okA = persona.leer(Aux1);
	//caso 3: cedulas iguales
        else{
		persona.escribir(Solteros);
	        okA = persona.leer(Aux1);			
                okH = hijo.leer(Hijos);
        }

}
Solteros.close();
}
}

