Sunteți pe pagina 1din 2

//Problema spectacolelor

#include <iostream>

using namespace std;

struct spect
{
int durata_start;
int durata_stop;
int pozitie;
};

spect s[10],t;
int i,j,n;
int ora_start, min_start, ora_stop, min_stop;

int main()
{
cout<<"Dati numarul de spectacole de programat ";
cin>>n;
for(i=1;i<=n;i++)
{
cout<<"Dati ora de inceput a spectacolului "<<i<<" ";cin>>ora_start;
cout<<"Dati minutul de inceput a spectacolului "<<i<<" ";cin>>min_start;
cout<<"Dati ora de sfarsit a spectacolului "<<i<<" ";cin>>ora_stop;
cout<<"Dati minutul de sfarsit a spectacolului "<<i<<" ";cin>>min_stop;
s[i].durata_start = ora_start*60+min_start;
s[i].durata_stop = ora_stop*60+min_stop;
s[i].pozitie=i;
}
//ordonam spectacolele crescator dupa durata terminarii spectacolelor
/*
for(i=1;i<=n-1;i++)
for(j=i+1;j<=n;j++)
if(s[i].durata_stop>s[j].durata_stop)
{
t=s[i];
s[i]=s[j];
s[j]=t;
}
*/
int gasit;
do
{
gasit=0;
for(i=1;i<=n-1;i++)
if(s[i].durata_stop>s[i+1].durata_stop)
{
t=s[i];
s[i]=s[i+1];
s[i+1]=t;
gasit=1;
}
}while(gasit==1);
//primul spectacol programat este primul in lista
cout<<"Lista spectacolelor programate = "<<s[1].pozitie<<" ";

//cautam in lista de spectacole , un alt spectacol care incepe dupa ultimul


//spectacol programat ( are ora de inceput >= decat ora de sfarsit a ultimului
// spectacol programat

for(i=2;i<=n;i++)
if(s[i].durata_start>=s[i-1].durata_stop)
cout<<s[i].pozitie<<" ";
return 0;
}

S-ar putea să vă placă și