Ho provato, in effetti il codice ordina correttamente tutti gli elementi, quindi non so se serve postarlo, eccolo cmq per curiosità, l'ho riscritto:
codice:
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
int N;
typedef struct struttura
{
int inizio;
int fine;
};
struttura giri [1000];
bool cmp (const struttura & a, const struttura & b)
{
if (a.fine < b.fine)
return true;
else
return false;
}
int main(int argc, char *argv[])
{
ifstream in("input.txt");
in >> N;
for(int i = 0; i < N; i++)
{
in >> giri[i].inizio >> giri[i].fine;
}
in.close();
///////////////////////////////
sort(giri, giri + N, cmp);
int fine_corr = giri[0].fine;
int caramelle = 1;
for(int i = 1; i < N; i++)
{
if(fine_corr < giri[i].inizio)
{
caramelle++;
fine_corr = giri[i].fine;
}
}
///////////////////////////////
ofstream out("output.txt");
out << caramelle;
out.close();
return EXIT_SUCCESS;
}
il codice serve per risolvere (correttamente) il problema:
Olimpiadi di Informatica - Selezione Regionale 2007
problema Giri sulla Scopa Nimbus3000 (NIMBUS)
ma poco conta ai fini del mio problema