Pagini recente » Cod sursa (job #915024) | Cod sursa (job #1314917) | Cod sursa (job #3032280) | Cod sursa (job #1366779) | Cod sursa (job #2081106)
#include<stdio.h>
#include<algorithm>
#define MAXN 100000
struct interval
{
int st,dr;
};
bool cmp(interval,interval);
FILE*fin,*fout;
interval v[MAXN+1];
int main()
{
fin=fopen("heavymetal.in","r");
fout=fopen("heavymetal.out","w");
int N;
fscanf(fin,"%d",&N);
for(int i=1;i<=N;i++)
{
fscanf(fin,"%d%d",&v[i].st,&v[i].dr);
}
std::sort(&v[1],&v[N+1],cmp);
int last=1;
int ans=0;
for(int i=2;i<=N;i++)
{
if(v[i].st>=v[last].dr)
{
ans+=v[last].dr-v[last].st;
last=i;
}
else if(v[i].dr-v[i].st>v[last].dr-v[last].st)
{
last=i;
}
}
ans+=v[last].dr-v[last].st;
fprintf(fout,"%d",ans);
fclose(fin);
fclose(fout);
return 0;
}
bool cmp(interval a,interval b)
{
return a.dr<b.dr;
}