Pagini recente » Cod sursa (job #1585829) | Cod sursa (job #1813375) | Cod sursa (job #1427641) | Cod sursa (job #2841928) | Cod sursa (job #332518)
Cod sursa(job #332518)
#include<stdio.h>
using namespace std;
#define dim 100001
long v[dim],w[dim], a[dim], b[dim], c[dim], d[dim],q[dim];
void merge_sort(int li, int ls)
{
int j,i,k,jum,m=0;
if(li==ls) return;
jum=(li+ls)/2;
merge_sort(li,jum);
merge_sort(jum+1,ls);
i=li;j=jum+1;k=li;
while((i<=jum)||(j<=ls))
{
if(j>ls || ( (i<=jum) && (v[i] < v[j])) )
{
w[k] = v[i]; m++; b[k]=a[i]; d[k]=c[i];
k++;
i++;
}
else
{
w[k] = v[j]; m++; b[k]=a[j]; d[k]=c[j];
k++;
j++;
}
}
for(i = ls; i >= li; i--)
{
v[i] = w[i]; a[i]=b[i]; c[i]=d[i];
}
}
int main()
{
int i,n,max=1,ore=0,j,ok=0;
FILE *f=fopen("heavymetal.in","r"), *g=fopen("heavymetal.out","w");
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
{fscanf(f,"%ld%ld",&v[i],&a[i]);c[i]=a[i]-v[i];}
merge_sort(1,n);
for(i=n;i>1;i--)
if(a[i-1]>v[i])
q[i-1]=1;
for(i=1;i<=n;i++)
if(q[i]!=1) ore+=c[i];
fprintf(g,"%d\n",ore);
fclose(f);
fclose(g);
return 0;}