Documente Academic
Documente Profesional
Documente Cultură
for(int i=1;i<=k;i++)
cout<<x[i]<<' ';
cout<<endl;
if(n%x[k]!=0) return 0;
return 1;
for(int i=2;i<=n/2;i++)
x[k]=i;
prod=prod*x[k];
if(posibil(x,k,n))
if(prod==n)
{afis(x,k); ok=1;}
else back(x,n,k+1,ok,prod);
prod=prod/x[k];
}}
int main()
int n,x[20],ok=0;
cin>>n;
back(x,n,1,ok,1);
return 0;
for(int i=1;i<=k;i++)
g<<x[i]<<' ';
g<<endl;
return 1;
{
if(k<=n)
for(int i=a;i<=b;i++)
x[k]=i;
su=su+x[k];
if(posibil(x,k,n))
if(su==n)
afis(x,k);
else back(x,n,su,k+1,a,b);
su=su-x[k];
int main()
int n,a,b,x[100];
f>>n>>a>>b;
back(x,n,0,1,a,b);
Se citete un numr natural nenul n, apoi n numere naturale distincte. S se afieze, n ordine
lexicografic, irurile din cele n valori
for(int i=1;i<=k;i++)
g<<v[x[i]]<<' ';
g<<endl;
int ok=1;
if(a<b)
for(int i=2;i<=a;i++)
ok=0;
else
for(int i=2;i<=b;i++)
ok=0;
if(ok==1) return 1;
else return 0;
for(int i=1;i<k;i++)
if(x[i]==x[k]) return 0;
return 1;
if(k<=n)
for(int i=1;i<=n;i++)
x[k]=i;
if(posibil(v,x,k))
if(k==n) afis(x,k,v);
else back(x,v,n,k+1);
int main()
int n,x[20],v[20];
f>>n;
for(int i=1;i<=n;i++)
f>>v[i];
for(int i=1;i<n;i++)
for(int j=i;j<=n;j++)
if(v[i]>v[j]) swap(v[i],v[j]);
back(x,v,n,1);
#include <iostream>
#include <fstream>
#include <string.h>
ifstream f("intrare.in");
ofstream g("iesire.out");
for(int i=1;i<=k;i++)
g<<s[x[i]-1];
g<<endl;
for(int i=1;i<k;i++)
if(x[i]==x[k]) return 0;
return 1;
{ if(k<=strlen(s))
{ for(int i=1;i<=strlen(s);i++)
{ x[k]=i;
if(posibil(x,k)==1)
if(k==strlen(s))afis(s,x,k);
else back(s,x,k+1);
int main()
f>>s;
for(int i=0;i<strlen(s)-1;i++)
for(int j=i;j<=strlen(s)-1;j++)
if(s[i]>s[j])
swap(s[i],s[j]);
back(s,x,1);
{
for(int i=1;i<=k;i++)
g<<v[x[i]]<<' ';
g<<endl;
return 1;
if(k<=n)
for(int i=1;i<=n;i++)
x[k]=i;
su=su+v[x[k]];
if(posibil(x,k))
if(su==n)
afis(x,v,k);
else back(v,x,k+1,n,m,su);
su=su-v[x[k]];
}
}
int main()
int n,m,v[20],x[20];
f>>n>>m;
for(int i=1;i<=m;i++)
f>>v[i];
for(int i=1;i<m;i++)
for(int j=i;j<=m;j++)
if(v[i]>v[j])
swap(v[i],v[j]);
back(v,x,1,n,m,0);
return 0;
Scriei un program care citete o valoare natural nenul impar pentru n i apoi genereaz i afieaz n
ordine cresctoare lexicografic toate combinaiile formate din n cifre care ndeplinesc urmtoarele
proprieti:
- ncep i se termin cu 0;
- modulul diferenei ntre oricare dou cifre alturate dintr-o combinaie este 1.
Astfel, pentru n=5, combinaiile afiate sunt, n ordine, urmtoarele: 01010, 01210.
#include <iostream>
#include <fstream>
#include <string.h>
#include <cmath>
ifstream f("intrare.in");
ofstream g("iesire.out");
for(int i=1;i<=k;i++)
cout<<x[i];
cout<<endl;
if(x[1]!=0) return 0;
return 1;
if(k<=n)
for(int i=0;i<=9;i++)
x[k]=i;
if(posibil(x,k,n)==1)
else back(x,k+1,n);
int main()
int n,x[20];
cin>>n;
back(x,1,n);
#include <iostream>
#include <fstream>
ifstream f("intrare.in");
ofstream g("iesire.out");
for(int i=1;i<=k;i++)
g<<v[x[i]]<<' ';
g<<endl;
return 1;
if(k<=n/3+1)
for(int i=1;i<=2;i++)
x[k]=i;
su=su+v[x[k]];
if(posibil(x,k))
if(su==n)
afis(x,k,v);
else back(v,x,k+1,su,n);
su=su-v[x[k]];
int main()
int n,x[20],v[3];
v[1]=3;
v[2]=5;
f>>n;
back(v,x,1,0,n);
return 0;
Se da un numar natural n (n<=5) si 2*n numere naturale cu cel mult 3 cifre fiecare reprezentand
inaltimile in centimetri a 2*n soldati.
Sa se aranjeze soldatii pe doua randuri a cate n soldati fiecare astfel incat fiecare soldat inafara de
primul de pe rand sa aiba in
stanga un soldat mai inalt decat el si fiecare soldat de pe randul 2 sa aiba in fata un soldat mai inalt
decat el.
#include <iostream>
#include <fstream>
ifstream f("intrare.in");
ofstream g("iesire.out");
g<<v[x[i]]<<" ";
g<<endl;
g<<v[x[i]]<<" ";
g<<endl;
g<<endl;
}
int posibil(int v[],int x[],int k,int n)
if(v[x[k]]>=v[x[k-1]]) return 0;
if(k>n/2)
if(v[x[k]]>=v[x[k-n/2]]) return 0;
for(int i=1;i<k;i++)
if(x[i]==x[k]) return 0;
return 1;
if(k<=n)
for(int i=1;i<=n;i++)
x[k]=i;
if(posibil(v,x,k,n))
if(k==n)
afisare(v,n,x,k);
else back(x,v,n,k+1);
int main()
{
int n,v[20],x[20];
f>>n;
n=2*n;
for(int i=1;i<=n;i++)
f>>v[i];
back(x,v,n,1);
Costruiti toate steagurile formate din 3 culori care indeplinesc urmatoarele conditii:
- orice steag trebuie sa contina culoarea verde sau culoarea galben la mijloc.
*/
#include <iostream>
#include <fstream>
#include <string.h>
ifstream f("intrare.in");
ofstream g("iesire.out");
for(int i=1;i<=n;i++)
f.getline(a[i],20);
}
void afisare(int x[],int k,char a[][20])
for(int i=1;i<=k;i++)
g<<a[x[i]]<<' ';
g<<endl;
for(int i=1;i<k;i++)
if(x[i]==x[k]) return 0;
return 1;
for(int i=1;i<=n;i++)
x[k]=i;
if(posibil(x,k,n,a))
if(k==3)
afisare(x,k,a);
else back(x,a,n,k+1);
}
}
int main()
f>>n;f.get();
citire(a,n);
back(x,a,n,1);