Informatică, întrebare adresată de Andreeab14, 8 ani în urmă

Problema 9 vă rog… dau 100p!!! C++

Anexe:

Răspunsuri la întrebare

Răspuns de lucaciucandrei
1

#include <bits/stdc++.h>

using namespace std;

int main(){

   vector<int> v;

   int n;

   cin>>n;

   for(int i=1;i<=2*n+1;i+=2)

       v.push_back(i);

   sort(v.begin(), v.end());

   do {

      for(int i=0;i<n;i++)

           cout<<v.at(i)<<' ';

       cout<<endl;

   } while (next_permutation(v.begin(), v.end()));

   return 0;

}


Andreeab14: Bănuiesc că este o rezolvare corectă, dar noi am învățat cu funcțiile back, tipar, succesor, init, valid… nu trebuie neapărat să le folosim pe toate
Andreeab14: #include

using namespace std;

int s[10],n;

void init (int k)
{s[k]=0;
}

int succesor (int k)
{if (s[k]{s[k]++;
return 1;
}
else
return 0;
}

int valid (int k)
{for (int i=1;iif (s[i]==s[k])
return 0;
return 1;
}

int solutie (int k)
{if (k==n)
return 1;
else
return 0;
}

void tipar (int k)
{for (int i=1;i<=k;i++)
cout<cout<}

void back(int k)
{init (k);
while (succesor(k))
if (valid(k))
if (solutie(k))
tipar(k);
else
back(k+1);
}
int main()
{cin>>n;
back(1);

return 0;
}
Andreeab14: De exemplu, asta este o problemă rezolvată cu permutări
lucaciucandrei: pai bun si daca tu ai exemplul de ce nu o faci tu?
lucaciucandrei: si de unde sa stiu eu ca-ti trebuie cu anumite functii cand tu nu le expui?
Andreeab14: Exemplul este pentru o problemă simplă… dar pe acestea 2 nu știu să le fac și nu am știut că se pot rezolva și altfel decât prin metoda backtracking cu cele 5 funcții… scuze
lucaciucandrei: pai si asa ti-a cerut neaparat? cu functiile succesor() s.a.m.d. ?
Andreeab14: Da, după cum ne-a predat… E suficient și dacă folosim doar funcțiile back și tipar… depinde de problemă, se pot elimina unele… în unele probleme nu e nevoie de toate
Alte întrebări interesante