Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.79 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int m_adam(int k,int p,int l,int n){
  4. if (k == 0)
  5.     return 1 ;
  6. else
  7. {
  8.     if( p>((n-1)/2) && l>((n-1)/2) ){
  9.         return (-1)*m_adam(k-1,p%(n/2),l%(n/2),n/2);}
  10.     else
  11.     {
  12.         if (p>((n-1)/2))
  13.             return m_adam(k-1,p%(n/2),l,n/2);
  14.         else if (l>((n-1)/2))
  15.             return m_adam(k-1,p,l%(n/2),n/2);
  16.         else
  17.         return m_adam(k-1,p,l,n/2);
  18.     }
  19. }
  20. }
  21.  
  22. int sum_line(int *a,int k,int p,int n){
  23. int sum=0;
  24.  
  25. for(int i=0;i<n;i++){
  26.     sum+= a[i] * m_adam(k,p,i,n);
  27. }
  28. return sum;
  29.  
  30. }
  31.  
  32. int main() {
  33. int n,j=1,k=0;
  34. cin >>n ;
  35. int a[n];
  36. for(int i=0;i<n;i++)
  37.     cin>>a[i];
  38. vector <int> b(n,0);
  39. while(j!=n)
  40.     j*=2,k++;
  41.  
  42. for (int i=0;i<n;i++)
  43.     b[i]=sum_line(a,k,i,n),
  44.     cout<<b[i]<<" ";
  45.  
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement