Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int m_adam(int k,int p,int l,int n){
- if (k == 0)
- return 1 ;
- else
- {
- if( p>((n-1)/2) && l>((n-1)/2) ){
- return (-1)*m_adam(k-1,p%(n/2),l%(n/2),n/2);}
- else
- {
- if (p>((n-1)/2))
- return m_adam(k-1,p%(n/2),l,n/2);
- else if (l>((n-1)/2))
- return m_adam(k-1,p,l%(n/2),n/2);
- else
- return m_adam(k-1,p,l,n/2);
- }
- }
- }
- int sum_line(int *a,int k,int p,int n){
- int sum=0;
- for(int i=0;i<n;i++){
- sum+= a[i] * m_adam(k,p,i,n);
- }
- return sum;
- }
- int main() {
- int n,j=1,k=0;
- cin >>n ;
- int a[n];
- for(int i=0;i<n;i++)
- cin>>a[i];
- vector <int> b(n,0);
- while(j!=n)
- j*=2,k++;
- for (int i=0;i<n;i++)
- b[i]=sum_line(a,k,i,n),
- cout<<b[i]<<" ";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement