Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- ifstream f("unu.in");
- int n, k, a[100][100], x[100], maxi=0, v[100];
- void Init()
- {
- x[k]=0;
- }
- int AmSuccesor()
- {
- if(x[k]<4)
- {
- x[k]++;
- return 1;
- }
- return 0;
- }
- int EValid()
- {
- if(k>1)
- {
- if(x[k]<x[k-1])
- return 0;
- if(x[k]-x[k-1]>1)
- return 0;
- }
- if(x[1]!=1)
- return 0;
- return 1;
- }
- int Solutie()
- {
- return (k==4);
- }
- void Tipar()
- {
- int i, s=0;
- for(i=1;i<k;i++)
- {
- cout<<a[i][x[i]]<<"+";
- s=s+a[i][x[i]];
- }
- s=s+a[k][x[k]];
- cout<<a[k][x[k]]<<"="<<s<<endl;
- if(s>maxi)
- {
- maxi=s;
- for(i=1;i<=n;i++)
- v[i]=x[i];
- }
- }
- void Back()
- {
- k=1;
- Init();
- int as, ev;
- while(k>0)
- {
- do
- {
- as=AmSuccesor();
- ev=EValid();
- }while(as==1 && ev==0);
- if(as==1)
- if(Solutie()==1)
- Tipar();
- else
- {
- k++;
- Init();
- }
- else
- k--;
- }
- }
- int main()
- {
- f>>n;
- int i, j;
- for(i=1;i<=n;i++)
- for(j=1;j<=i;j++)
- f>>a[i][j];
- Back();
- cout<<"suma max ="<<maxi<<" cu termenii:";
- for(i=1;i<=n;i++)
- cout<<a[i][v[i]];
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement