Sunteți pe pagina 1din 2

CONCURSUL DE INFORMATICĂ Clasele IX-X

"Urmaşii lui Moisil..." IAŞI, 28 aprilie 2001

Problema 1 – Excursie
Organizatorii Concursului de Informatică „Urmaşii lui Moisil” şi-au propus să organizeze o excursie prin
judeţul Iaşi, excursie la care să participe toţi cei N concurenţi, numerotaţi distinct de la 1 la N. Pentru
excursie sponsorii au pus la dispoziţie 3 mijloace de transport, dar au impus o condiţie: „suma numerelor de
ordine ale concurenţilor din fiecare mijloc de transport să fie aceeaşi”. În caz contrar excursia nu se poate
desfăşura.

Cerinţă:
Ajutaţi-i pe organizatori să-i repartizeze pe cei N concurenţi în cele 3 mijloace de transport.

Restricţii
 1  N  30000

Intrare:
Fişierul de intrare EXCURSIE.IN conţine pe prima linie numărul de concurenţi:
N

Ieşire:
Fişierul EXCURSIE.OUT va conţine în cazul în care problema are soluţie:
DA – problema are soluţie
i1 i2 . . . im – numerele de ordine ale concurenţilor din prima maşină
j1 j2 . . . jh – numerele de ordine ale concurenţilor din a doua maşină
k1 k2 . . . kp – numerele de ordine ale concurenţilor din a treia maşină

În cazul în care problema nu are soluţie, fişierul de ieşire conţine pe prima linie mesajul:
NU – problema nu are soluţie

Exemplu
EXCURSIE.IN EXCURSIE.OUT
11 DA
5 6 11
2 3 7 10
1489

Timp maxim de execuţie: 1 secundă/test


Punctaj: 100 puncte
CONCURSUL DE INFORMATICĂ Clasele IX-X
"Urmaşii lui Moisil..." IAŞI, 28 aprilie 2001

#include <fstream.h>
long n, Start, x;
ifstream f("excursie.in");
ofstream g("excursie.out");
void main()
{ f>>n; f.close();
if((n<5)||(n*(n+1)%3)) g<<"NU";
else { g<<"DA"<<endl;
if (!( (n-9) % 6) ) {Start=10; x=(n-9)/6;}
if (!( (n-8) % 6) ) {Start= 9; x=(n-8)/6;}
if (!( (n-6) % 6) ) {Start= 7; x=(n-6)/6;}
if (!( (n-5) % 6) ) {Start= 6; x=(n-5)/6;}
//masina 1
switch(Start)
{ case 10: g<<1<<' '<<2<<' '<<3<<' '<<4<<' '<<5<<' '; break;
case 9: g<<1<<' '<<2<<' '<<3<<' '<<6<<' '; break;
case 7: g<<3<<' '<<4<<' '; break;
case 6: g<<5<<' '; break;
}
for(int i=0;i<x;i++)
g<<Start+6*i<<' '<<Start+5+6*i<<' ';
g<<endl;
//masina 2
switch(Start)
{ case 10: g<<7<<' '<<8<<' '; break;
case 9: g<<5<<' '<<7<<' '; break;
case 7: g<<2<<' '<<5<<' '; break;
case 6: g<<2<<' '<<3<<' '; break;
}
for(i=0;i<x;i++)
g<<Start+1+6*i<<' '<<Start+4+6*i<<' ';
g<<endl;
//masina 3
switch(Start)
{ case 10: g<<6<<' '<<9<<' '; break;
case 9: g<<4<<' '<<8<<' '; break;
case 7: g<<1<<' '<<6<<' '; break;
case 6: g<<1<<' '<<4<<' '; break;
}
for(i=0;i<x;i++)
g<<Start+2+6*i<<' '<<Start+3+6*i<<' ';
g<<endl;
}
g.close();
}

S-ar putea să vă placă și