Cod sursa(job #278585)

Utilizator someoneIosif Ardelean someone Data 12 martie 2009 13:29:31
Problema Heavy metal Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<fstream.h>
#include<conio.h>
int a[100][3],n,b[24]={0};
void beolv()
{
fstream f;
int i;
f.open("heavymetal.in",ios::in);
f>>n;
for(i=1;i<=n;i++)
f>>a[i][1]>>a[i][2];
f.close();
}

void harm()
{
int i;
for(i=1;i<=n;i++)
a[i][0]=a[i][2]-a[i][1];
}

void rendez()
{
int i,j,seged[3];
for(i=2;i<=n-1;i++)
	{seged[0]=a[i][0];j=i-1;seged[1]=a[i][1];seged[2]=a[i][2];
	while(j>0&&seged[0]>a[j][0])
	{a[j+1][0]=a[j][0];
	a[j+1][1]=a[j][1];
	a[j+1][2]=a[j][2];
	j--;
	}
	a[j+1][0]=seged[0];
	a[j+1][1]=seged[1];
	a[j+1][2]=seged[2];}
}

void egyes()
{
int i,j,mut=0;
for(i=1;i<=n;i++)
	{mut=0;
	for(j=a[i][1]-1;j<a[i][2]-1;j++)
	 if(b[j]==1)mut=1;
	if(mut==0)
		for(j=a[i][1]-1;j<a[i][2]-1;j++)
		b[j]=1;
	}
}

void szam()
{
int i,s=0;
fstream f;
f.open("heavymetal.out",ios::out);
for(i=0;i<24;i++)
if(b[i])s++;
f<<s;
f.close();
}



void main()
{beolv();
harm();
rendez();
egyes();
szam();
}