Cod sursa(job #154243)

Utilizator Alexa_ioana_14Antoche Ioana Alexandra Alexa_ioana_14 Data 11 martie 2008 01:11:39
Problema Heavy metal Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<stdio.h>   
#include<stdlib.h>   
long int n,i,s,min;   
struct interval{int a,b;};   
int compar(const void*p,const void*q)   
{   
    interval *pp=(interval*)p, *qq=(interval*)q;   
    interval x=*pp,y=*qq;   
    if (x.a>y.a) return 1;   
    else  
        if (x.a==y.a && x.b<y.b) return 1;   
    if (x.b<y.b) return -1;   
    return 0;   
}   
int main()   
{   
    interval v[100000];   
    freopen("heavymetal.in","r",stdin);   
    freopen("heavymetal.out","w",stdout);   
    scanf("%ld",&n);   
    for (i=0; i<n; i++) {scanf("%ld%ld",&v[i].a,&v[i].b);}   
    qsort(v,n,sizeof(v[0]),compar);   
    min=v[0].b;   
    s=v[0].b-v[0].a;   
    for (i=1; i<n; i++)    
    {   
        if (min<=v[i].a)   
        {   
            min=v[i].b;   
            s=s+v[i].b-v[i].a;   
        }   
               
    }   
    printf("%ld",s);   
}