Răspuns :
Răspuns:
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("consiliu.in");
ofstream g("consiliu.out");
int a,b,n,hs,ms,hf,mf,i,j, v[1440];
int main()
{
f >> n;
f >> hs >> ms >> hf >> mf;
a=hs*60+ms; b=hf*60+mf;
if (a==b) {for (i=0; i<1439; i++) v[i]=1;}
if (a<b) {for (i=a; i<b; i++) v[i]=1; }
if (a>b) {
for (i=a; i<=1439; i++) v[i]=1;
for (i=0; i<b; i++) v[i]=1;
}
for (j=2; j<=n; j++) {
f >> hs >> ms >> hf >> mf;
a=hs*60+ms; b=hf*60+mf;
if (a==b) {
for (i=0; i<1439; i++) v[i]=1*v[i];
}
if (a<b) {
for (i=a; i<b; i++) v[i]=1*v[i];
for (i=0; i<a; i++) v[i]=0;
for (i=b; i<=1439; i++) v[i]=0;
}
if (a>b) {
for (i=a; i<=1439; i++) v[i]=1*v[i];
for (i=0; i<b; i++) v[i]=1*v[i];
for (i=b; i<a; i++) v[i]=0;
}
}
int s=0;
for (i=0; i<=1439; i++) {
s=s+v[i];
}
g << s;
return 0;
}
Explicație:
Deci, am folosit un vector caracteristic a minutelor, scriind în vector 1 dacă profesorul e la serviciu și 0 în caz contrar în minuta respectivă.
Astfel după citirea datelor și înregistrarea respectivă în vectorul caracteristic, suma unităților din vector va și reprezenta rezultatul...
Nu sunt sigur dacă codul va rezista condițiilor de timp și memorie la evaluare pe careva site (varena sau ...), de altfel dă rezultat corect... se pare .. :))) Sper să fie clară logica codului...
Succese! .


Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile furnizate v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de ajutor, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite!