Pagini recente » Cod sursa (job #2318474) | Cod sursa (job #2553315) | Cod sursa (job #1332160) | Cod sursa (job #2226786) | Cod sursa (job #1707889)
//#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fi("segmente.in");
ofstream fo("segmente.out");
struct segm{
int x,y,ind;
};
bool comp(segm a,segm b){ return a.x < b.x || (a.x == b.x && a.y < b.y);}
int n;
segm a[10001];
int RS[10010],rs;
void greedy()
{
int pred,i,k = 1;
RS[++rs] = a[0].ind;
for (pred=0,i=1;i<n;++i){
// fo << a[i].x << ' ' << a[i].y << '\n';
if (a[pred].y<a[i].x) RS[++rs] = a[i].ind,pred = i;
else if(a[pred].y > a[i].y) pred = i,RS[rs] = a[i].ind;
}
for(int i = 1;i<=rs;i++) fo << RS[i]+1 << ' ';
}
int main()
{
int punct;
int i;
fi>>n;
for (i=0;i<n;++i)
{
fi>>a[i].x;
fi>>a[i].y;
a[i].ind = i;
}
//Qsort(0, n-1);
sort(a, a+n, comp);
fo<<"Segmentele optime:";
greedy();
return 0;
}