Cod sursa(job #344498)

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

void quicksort(int inceput, int sfarsit)
{
long int i, j, temp, aux;
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 int i,n,x;
long long ore=0;
FILE *f=fopen("heavymetal.in","r"), *g=fopen("heavymetal.out","w");
fscanf(f,"%ld",&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,"%d\n",ore);


fclose(f);
fclose(g);

return 0;}