Interval – rešenje

Sva četiri vremena pretvaramo u minute od ponoći (sati·60 + minuti). Zajedničko vreme počinje kada dođe onaj ko je došao kasnije, a završava se kada ode onaj ko je otišao ranije. Ako je taj početak posle kraja, nisu se sreli. Rezultat u minutima na kraju delimo na sate (/ 60) i minute (% 60).

#include <iostream>

using namespace std;

/*
Pera i Ana rade u istoj programerskoj firmi. Ako se zna radno vreme svakog od
njih napiši program INTERVAL koji određuje koliko su vremena proveli na poslu
zajedno. Sa ulaza se učitava vreme kada je Pera došao na posao, vreme kada je
otišao, vreme kada je Ana došla na posao i vreme kada je ona otišla. Svako
vreme zadaje se u posebnoj liniji, preko dva broja odvojenih jednim razmakom.
Rezultat ispisati u obliku broja sati i minuta, opet razdvojenih jednim
razmakom.
Ulaz: Izlaz:
8 50 5 5
16 40
9 20
14 25
*/

int main()
{
    int pHD,pMD,pHO,pMO;
    int aHD,aMD,aHO,aMO;
    int mZaj=0,hZaj;
    cin >> pHD >> pMD;
    cin >> pHO >> pMO;
    cin >> aHD >> aMD;
    cin >> aHO >> aMO;
    pMD = pHD*60+pMD;
    pMO = pHO*60+pMO;
    aMD = aHD*60+aMD;
    aMO = aHO*60+aMO;
    if(pMD <= aMD){ //Pera je došao prvi
        if(pMO<=aMD){//Pera je i otišao pre nego što je Ana došla
            //ne srecu se
            mZaj=0;
        }
        else{
            mZaj=min(aMO,pMO)-aMD;
        }
    }
    else if(pMD>=aMD){ //Ana je došla prva
        if(aMO<=pMD){
            //ne srecu se
            mZaj=0;
        }
        else{
            mZaj=min(aMO,pMO) - pMD;
        }
    }
    hZaj=mZaj/60;
    mZaj=mZaj%60;
    cout<<hZaj<<" "<<mZaj;
    return 0;
}