Advertisement
KillerBananaZ

BKT

Jun 8th, 2017
385
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.09 KB | None | 0 0
  1. BKT
  2. #include <iostream>
  3. #include <fstream>
  4. #include <string.h>
  5. #include <cmath>
  6. using namespace std;
  7. ifstream f("graf.txt");
  8. int x[100],n;
  9.  
  10. void citire(int &n)
  11. {
  12.     cin>>n;
  13. }
  14. int valid(int k)
  15. {
  16.     return 1;
  17. }
  18. int sol(int k)
  19. {
  20.     return k==n;
  21. }
  22. void tipar(int k)
  23. {
  24.     if(k==n)
  25.     {
  26.          int s=0;
  27.     for(int i=1;i<=k;i++)
  28.         if(x[i]==0)
  29.             s=s-i*i;
  30.         else
  31.             s=s+i*i;
  32.     if(s==n)
  33.     {
  34.  
  35.          for(int i=1;i<=n;i++)
  36.            if(i<n)
  37.            {
  38.             if(x[i]==0)
  39.             cout << "-"<<i*i;
  40.             else
  41.             cout << "+"<<i*i;
  42.            }
  43.            else
  44.            {
  45.                if(x[n]==0)
  46.             cout << "-"<<i*i;
  47.             else
  48.             cout << "+"<<i*i;
  49.            }
  50.         cout <<endl;
  51.     }
  52.     }
  53.  
  54. }
  55. void BKT()
  56. {
  57. int k=1;
  58. x[k]=-1;
  59. while(k)
  60. if(x[k]<1 && k<=n)
  61. {
  62.     x[k]=x[k]+1;
  63.     if(valid(k))
  64.         if(sol(k))
  65.         tipar(k);
  66. else
  67. {
  68.     k++;
  69.     x[k]=-1;}}
  70.     else
  71.         k--;
  72. }
  73. int main()
  74. {
  75.     citire(n);
  76.     BKT();
  77.     f.close();
  78.     return 0;
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement