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 pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări suplimentare sau nevoie de ajutor, vă rugăm să ne contactați cu încredere. Așteptăm cu drag să reveniți și nu uitați să ne salvați în lista dumneavoastră de favorite!