Advertisement
CosminVarlan

Problema 3 admitere informatica Iasi 2012.

Apr 24th, 2018
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.52 KB | None | 0 0
  1. #include <iostream>
  2. #include <string.h>
  3.  
  4. using namespace std;
  5.  
  6. int a[100] = {3,2,6,7,1,-9,8,2,-15,2,4,3};
  7.  
  8. int m[100], M[100];
  9. int b=700, x[100], n=12, inf=-100, sup=100;
  10. int gasit=0;
  11.  
  12.  
  13. int minn(int nm, int am[], int bm, int infm, int supm, int km){
  14.     int minim=2000000000;
  15.     for(int jj=infm; jj<=supm; jj++)
  16.     {
  17.         int sum=0;
  18.         for(int i=km; i<nm-1; i++)
  19.             sum += am[i]*jj;
  20.         if (sum < minim) minim=sum;
  21.     }
  22.     return minim;
  23. }
  24.  
  25. int maxx(int nm, int am[], int bm, int infm, int supm, int km){
  26.     int maxim=-2000000000;
  27.     for(int jj=infm; jj<=supm; jj++)
  28.     {
  29.         int sum=0;
  30.         for(int i=km; i<nm-1; i++)
  31.             sum += am[i]*jj;
  32.         if (sum > maxim) maxim=sum;
  33.     }
  34.     return maxim;
  35. }
  36.  
  37. int verifica(int k)
  38. {
  39.     int sum=0;
  40.     for(int i=0;i<k;i++)
  41.         sum+=(a[i]*x[i]);
  42.     if (sum+m[k]>b) return 0;
  43.     if (sum+M[k]<b) return 0;
  44.     return 1;
  45. }
  46.  
  47.  
  48. void afisare(){
  49.  
  50.     int sum=0;
  51.     for(int i=0;i<n;i++)
  52.         sum+=(a[i]*x[i]);
  53.     if(sum==b){
  54.             for(int i=0;i<n;i++)
  55.                 cout << a[i]<<"*"<<x[i]<<" + ";
  56.             gasit=1;
  57.             cout << endl;
  58.     }
  59. }
  60.  
  61. void bkt(int k){
  62.     if(k==n) afisare();
  63.     else{
  64.         for(int i=inf;i<=sup;i++){
  65.             x[k]=i;
  66.             if (verifica(k)) bkt(k+1);
  67.         }
  68.     }
  69. }
  70.  
  71. int main()
  72. {
  73.     for(int i=0; i<n; i++)
  74.         m[i]=minn(n,a,b,inf,sup,i);
  75.     for(int i=0; i<n; i++)
  76.         M[i]=maxx(n,a,b,inf,sup,i);
  77.     bkt(0);
  78.  
  79.     return 0;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement