Cod sursa(job #125025)

Utilizator LowArmourVasile LowArmour Data 20 ianuarie 2008 11:00:45
Problema Gardieni Scor 20
Compilator cpp Status done
Runda preONI 2008, Runda 3, Clasa a 10-a Marime 0.8 kb
#include <fstream.h>
#include <math.h>
ifstream f ("gardieni.in");
ofstream g ("gardieni.out");
long int a[50005][3],t;
long long int s;
unsigned int n;
void citire ()
	{
	f>>n>>t;
	unsigned int i;
	int j;
	for(i=1;i<=n;i++)
			 for(j=1;j<=3;j++)
					  f>>a[i][j];
	}
void procesare ()
	{
	long int i;
	unsigned int j;
	int b;
	for(i=1;i<=t;i++){
			 long int min=pow(2,20);
			 int k;
			 b=0;
			 for(j=1;j<=n;j++)
					  if(a[j][1]<=i && a[j][2]>=i)
						  if(a[j][3]==1){
								s=s+a[j][2]-a[j][i]+1;
								i=a[j][2];
								j=n+1;
								}
						       else
							   if(min>a[j][3]){
									  b=1;
									  min=a[j][3];
									  k=j;
									  }
			 if(b==1)
				 s=s+a[k][3];
			 }
	}
int main ()
{
citire ();
procesare ();
g<<s;
return 0;
}