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 platforma noastră dedicată Informatică. Sperăm că informațiile oferite v-au fost utile. Dacă aveți întrebări sau aveți nevoie de sprijin suplimentar, vă încurajăm să ne contactați. Revenirea dumneavoastră ne bucură, iar dacă v-a plăcut, nu uitați să adăugați site-ul nostru la favorite!