Cod sursa(job #344505)

Utilizator bugyBogdan Vlad bugy Data 30 august 2009 13:39:07
Problema Heavy metal Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<stdio.h>
using namespace std;
#define dim 100001
long long a[dim], b[dim];   

void quicksort(long long inceput,long long sfarsit)
{
long long i=0, j=0, temp=0, aux=0;
i=inceput;
j=sfarsit;
temp=b[(i+j)/2];
do
{
while(b[i]<temp) i++;
while(b[j]>temp) j--;
if(i<j)
{
aux=b[i]; b[i]=b[j]; b[j]=aux;
aux=a[i]; a[i]=a[j]; a[j]=aux;
}
if(i<=j)
{
i++;j--;
}
}while(i<=j);
if(inceput<j) quicksort(inceput,j);
if(i<sfarsit) quicksort(i,sfarsit);
}


int main()
{
long long i=0,n=0,x=0;
long long ore=0;
FILE *f=fopen("heavymetal.in","r"), *g=fopen("heavymetal.out","w");
fscanf(f,"%lld",&n);
for(i=1;i<=n;i++)
	fscanf(f,"%lld%lld",&a[i],&b[i]); 
quicksort(1,n);
ore=b[n]-a[n];
x=a[n];
for(i=n-1;i>=1;i--)
	if(b[i]<=x)
		{ore+=b[i]-a[i];x=a[i];}


fprintf(g,"%lld\n",ore);


fclose(f);
fclose(g);

return 0;}