0% found this document useful (0 votes)
17 views5 pages

Pomana

Uploaded by

xxejeyexx
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views5 pages

Pomana

Uploaded by

xxejeyexx
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 5

struct mobila{

unsigned int IDnrinventar;


char denumire[50];
char material[50];
unsigned int inaltime;
unsigned int latime;
unsigned int adancime;
unsigned int pret;
unsigned int stoc;

};
void add(mobila *v,int n){
cout << endl<<"Dati ID: ";
cin >> v[n].IDnrinventar;
cout << "Dati denumirea ";
cin >> v[n].denumire;
cout << "Dati materialul: ";
cin >> v[n].material;
cout << "Dati inaltimea; ";
cin>> v[n].inaltime;
cout << "Dati latimea: ";
cin >> v[n].latime;
cout << "Dati adancimea: ";
cin >> v[n].adancime;
cout << "Dati pretul: ";
cin >> v[n].pret;
cout << "Dati stocul : ";
cin >> v[n].stoc;

void update(mobila *v,int n, int id){


for(int i=0;i<=n;i++){
if(v[i].IDnrinventar==id){
cout<<"introduceti pret:";
cin>>v[i].pret;
cout<<"introduceti stoc";
cin>>v[i].stoc;
}
}
}

int comparare1(const void* a, const void* b)


{
mobila p1 = *(mobila*)a;
mobila p2 = *(mobila*)b;

if (p1.pret == p2.pret)
{
return (p1.stoc - p2.stoc);
}
else
return (p1.pret - p2.pret);
}

int main()
{

int n;
mobila * v= new mobila[n];
ifstream fi("text.txt");

if (!fi){ cout<<"eroare";
return -1;}
fi>>n;
for(int i=0;i<n;i++){

fi>>v[i].IDnrinventar>>v[i].denumire>>v[i].material>>v[i].inaltime>>v[i].latime>>v[
i].adancime>>v[i].pret>>v[i].stoc;
cout<<"\nID:"<<v[i].IDnrinventar<<"\nDenumire:"<<v[i].denumire<<"\
nMaterial:"<<v[i].material<<"\nInaltime:"<<v[i].inaltime<<"\
nLatime:"<<v[i].latime<<"\nAdancime:"<<v[i].adancime<<"\nPret:"<<v[i].pret<<"\
nStoc:"<<v[i].stoc<<endl;
}

add(v,n);
cout<<"\nIntregul vector dupa adaugare a un nou element:\n";

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

cout<<"\nID:"<<v[i].IDnrinventar<<"\nDenumire:"<<v[i].denumire<<"\
nMaterial:"<<v[i].material<<"\nInaltime:"<<v[i].inaltime<<"\
nLatime:"<<v[i].latime<<"\nAdancime:"<<v[i].adancime<<"\nPret:"<<v[i].pret<<"\
nStoc:"<<v[i].stoc<<endl;
}

int id;
cout<<"introduceti id de modificat:";
cin>>id;
update(v,n,id);

cout<<"\n Vector dupa Update:";

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

cout<<"\nID:"<<v[i].IDnrinventar<<"\nDenumire:"<<v[i].denumire<<"\
nMaterial:"<<v[i].material<<"\nInaltime:"<<v[i].inaltime<<"\
nLatime:"<<v[i].latime<<"\nAdancime:"<<v[i].adancime<<"\nPret:"<<v[i].pret<<"\
nStoc:"<<v[i].stoc<<endl;

qsort(v, n+1, sizeof(mobila), comparare1);


cout << endl << "Ordonare dupa pret: ";
for (int i = 0; i <= n; i++)
{
cout<<"\nID:"<<v[i].IDnrinventar<<"\nDenumire:"<<v[i].denumire<<"\
nMaterial:"<<v[i].material<<"\nInaltime:"<<v[i].inaltime<<"\
nLatime:"<<v[i].latime<<"\nAdancime:"<<v[i].adancime<<"\nPret:"<<v[i].pret<<"\
nStoc:"<<v[i].stoc<<endl;
}

cout<<"introduceti numarul de top-uri";

int m;
cin>>m;

cout<<"top"<<m<< "preturi";
for(int i=n;i>n-m;i--){

cout<<"\nID:"<<v[i].IDnrinventar<<"\nDenumire:"<<v[i].denumire<<"\
nMaterial:"<<v[i].material<<"\nInaltime:"<<v[i].inaltime<<"\
nLatime:"<<v[i].latime<<"\nAdancime:"<<v[i].adancime<<"\nPret:"<<v[i].pret<<"\
nStoc:"<<v[i].stoc<<endl;

return 0;
}

//4

int k, i,n,cnt1,cnt2;
int *v;
void init() {
v[k] = 0;
}

bool am_succesor() {
if (v[k] < 2) {
++v[k];
return true;
}
else return false;
}

bool solutie() {
if (k == n - 1) {
cnt1=0;
cnt2=0;
for(int i=0;i<n;i++)
{
if(v[i]==1) cnt1++;
else if (v[i]==2)cnt2++;
}
if(cnt1==cnt2) return true;
else return false;
//return true;
}
else return false;
}

void tipar() {
for (i = 0; i < n; i++) {
if(v[i]==1) cout<<"(";
else cout<<")";
}
cout << endl;
}

bool e_valid() {
if(v[k]==2){
cnt1=0;
cnt2=0;
for(int i=0;i<k;i++){
if(v[i]==1) cnt1++;
else cnt2++;
}
if(cnt1<=cnt2) return false;
}
return true;
}

void back() {
k = 0;
init();
bool AS;
while (k >= 0) {
do {
AS = am_succesor();
}while (AS && !e_valid());
if (AS) {
if (solutie()) tipar();
else if(k<n-1){ //!!
++k;
init();
}
}
else k--;
}
}

int main() {
redo: cout << "Nr Elemente vector: ";
cin >> n;
if(n%2==1) goto redo;
v = new int[n];
back();
return 0;
}

You might also like