Răspuns :
#include <fstream>
using namespace std;
struct copil {
int pos;
bool a_atins_mingea = false;
};
struct nod_traseu {
int a;
int b;
nod_traseu *urmatorul = (nod_traseu*) 0ULL;
nod_traseu *precedentul = (nod_traseu*) 0ULL;
};
ifstream fin("minge.in");
ofstream fout("minge.out");
copil arr_[10003];
nod_traseu traseu[10003];
int main(){
int cerinta;
fin >> cerinta;
int n,k;
fin >> n >> k;
for(int i = 1; i <= n; i++){
arr_[i].pos = i;
arr_[i].a_atins_mingea = false;
}
for(int i = 1; i <= k; i++){
fin >> traseu[i].a;
fin >> traseu[i].b;
arr_[traseu[i].a].a_atins_mingea = true;
arr_[traseu[i].b].a_atins_mingea = true;
}
switch (cerinta){
case 1:
{
int cnt = 0;
for(int i = 1; i <= n; i++){
if(!arr_[i].a_atins_mingea)
cnt++;
}
fout << cnt;
break;}
case 2:
{
for(int i = 1; i <= k; i++){
for(int j = 1; j <= k; j++){
if(traseu[i].b == traseu[j].a){
traseu[i].urmatorul = &traseu[j];
traseu[j].precedentul = &traseu[i];
break;
}
}
}
nod_traseu* nod;
nod_traseu* prev;
for(nod = &traseu[1]; nod != (nod_traseu*) 0ULL; prev=nod, nod = nod->precedentul);
for(nod = prev; nod != (nod_traseu*) 0ULL; prev=nod, nod = nod->urmatorul)
fout << nod->a << " ";
fout << prev->b;
break;}
}
fout.close();
}
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de sprijin, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite pentru acces rapid.