Documente Academic
Documente Profesional
Documente Cultură
k-1
● Analiză
● Dom de valori? Ce duc în stivă
● Valid (1 sau 0) când elementul dus la nivelul k este ok
● Solutie ➡Afisare
● Funcții
1. Afisare sol (int k)
2. Valid
3.rutina
Rutina:
int st[50]
void back (int k)
{ Dom. de valori
{-duc elem. In stiva
Daca e valid, atunci
Daca e sol atunci
Afisare
Altfel
back(k+1)
}
}
-------------------------------------------------------------------------------------------------------
#include <iostream>
return 0;
}
Heyyyyyyy<333333333333lyyy mwah
13/03/2024
-------------------------------------------------------------------------------------------------------
#include <iostream>
int valid(int k)
{
for(int i=1;i<k;i++)
if(st[k]==st[i])
return 0;
return 1;
}
void backk(int k)
{
for(int i=1;i<=n;i++)
{
st[k]=i;
if(valid(k)==1)
if(k==p)
afisare(k);
else
backk(k+1);
}
}
int main()
{
cin>>n>>p;
backk(1);
return 0;
}
-------------------------------------------------------------------------------------------------------
int valid(int k)
{
if(k>1)
if(st[k]<=st[k-1])
return 0;
return 1;
}
-------------------------------------------------------------------------------------------------------
PROBLEMA TEMA
2.
#include <iostream>
—--------26 martie
2024------------------------------------------------------------------------------------------------
6. Se organizează un eveniment între personajele din desenele animate. La acest
eveniment participă Dexter ce vine împreuna cu sora sa Dee Dee, Fred
Flinstone , soţia sa Wilma, Shaggy şi cu Scooby Doo. Ei vor lua prânzul la masă
însă nu cu toţii se înţeleg bine, astfel ei au preferinţe în ceea ce priveşte modul de
aşezare la masă. Scaunele sunt notate de la 1 la 6, masa fiind dreptunghiulară.
Dexter, deoarece este foarte îngâmfat doreşte să stea doar pe primul loc, iar
Scooby doreşte să stea lângă el. Fiindcă Shaggy şi Scooby sunt prieteni de
nedespărţit, Shaggy doreste să stea lângă Scooby. Să se afişeze toate
posibilităţile de aranjare la masă, îdeplinindu-se toate condiţiile menţionate mai
sus.
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("date.in");
ofstream fout("date.out");
int st[10];
char x[10][15];
void citire()
{
for(int i=1;i<=6;i++)
fin.getline(x[i],14);
}
void afisare(int k)
{
for(int i=1;i<=6;i++)
fout<<x[st[i]]<<" ";
fout<<endl;
}
int valid(int k)
{
//elemente distincte
for(int i=1;i<k;i++)
if(st[i]==st[k])
return 0;
// dexter-pozitia 1
if(k==1 && st[1]!=1)
return 0;
//scooby sa fie langa dexter
if(k==6 && (st[k]!=3)&& (st[2]!=3))
return 0;
//shaggy sa fie langa scooby
if(k==3 && st[3]!=4 && st[2]==3)
return 0;
if(k==6 && st[5]!=4 && st[6]==3)
return 0;
return 1;
}
void backtracking(int k)
{
for(int i=1;i<=6;i++)
{
st[k]=i;
if(valid(k)==1)
if(k==6)
afisare(k);
else
backtracking(k+1);
}
}
int main()
{
citire();
backtracking(1);
return 0;
}