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 că ați vizitat site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Nu ezitați să ne contactați pentru întrebări sau asistență suplimentară. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!