fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main() {
  5. vector< int > a;
  6. a.push_back(2);
  7. a.push_back(4);
  8. a.push_back(8);
  9. vector<std::vector< int >> b(1, vector< int >(2, 0));
  10. vector[0][0] = 2;
  11. vector[0][1] = 3;
  12. solve(a,b);
  13. // your code goes here
  14. return 0;
  15. }
  16.  
  17. vector< int > solve(vector< int > &A, vector<vector< int > > &B) {
  18.  
  19. #define ll long long
  20. #define mod 1000000007
  21. int n,q,a[100005],l,r;
  22.  
  23. ll gcd(ll a,ll b)
  24. {
  25. ll x = max(a,b);
  26. ll y = min(a,b);
  27. if(y==0)return x;
  28. if(x%y == 0)return y;
  29. return gcd(y,x%y);
  30. }
  31.  
  32.  
  33. ll fib(int n)
  34. {
  35. // Base cases
  36. if (n == 0)
  37. return 0;
  38. if (n == 1 || n == 2)
  39. return (f[n] = 1);
  40.  
  41. // If fib(n) is already computed
  42. if (f[n])
  43. return f[n];
  44.  
  45. int k = (n & 1)? (n+1)/2 : n/2;
  46.  
  47. // Applying recursive formula [Note value n&1 is 1
  48. // if n is odd, else 0.
  49. f[n] = (n & 1)? (((fib(k)*fib(k))%mod + (fib(k-1)*fib(k-1))%mod)%mod)
  50. : (((2*fib(k-1) + fib(k))%mod)*fib(k))%mod;
  51.  
  52. return f[n];
  53. }
  54.  
  55. class node{
  56. public : int data;
  57. node* llink;
  58. node* rlink;
  59. int left,right;
  60. };
  61. node* root;
  62. node* create(int l,int r)
  63. {
  64. int mid = (l+r)/2;
  65. node* nnode = new node() ;
  66. if(l == r)
  67. {
  68. nnode->data = a[l];
  69. nnode->left = l;nnode->right = r;
  70. nnode->llink = NULL;nnode->rlink = NULL;
  71. return nnode;
  72. }
  73. nnode->llink = create(l , mid);
  74. nnode->rlink = create(mid+1,r);
  75. nnode->left = l;
  76. nnode->right = r;
  77. nnode->data = gcd(nnode->llink->data , nnode->rlink->data);
  78. return nnode;
  79. }
  80. int query(node* nnode, int l,int r)
  81. {
  82. if(nnode->left > r || nnode->right < l)return 0;
  83. if(nnode->left >= l && nnode->right <=r)return nnode->data;
  84. int a = query(nnode->llink,l,r);
  85. int b = query(nnode->rlink,l,r);
  86. return gcd(a,b);
  87. }
  88.  
  89. q = B.size();
  90. vector<int> out;
  91.  
  92. for(int i=1;i<=n;i++)
  93. a[i] = A[i-1];
  94.  
  95. root = create(1,n);
  96.  
  97. for (int i=0; i<q; i++){
  98. int val = query(root,l,r);
  99. cout << fib(val) <<endl;
  100. //out.push_back(fib(val));
  101. }
  102.  
  103. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp: In function ‘int main()’:
prog.cpp:5:2: error: ‘vector’ was not declared in this scope
  vector< int > a;
  ^~~~~~
prog.cpp:5:10: error: expected primary-expression before ‘int’
  vector< int > a;
          ^~~
prog.cpp:6:2: error: ‘a’ was not declared in this scope
  a.push_back(2);
  ^
prog.cpp:9:9: error: ‘vector’ is not a member of ‘std’
  vector<std::vector< int >> b(1, vector< int >(2, 0));
         ^~~
prog.cpp:9:22: error: expected primary-expression before ‘int’
  vector<std::vector< int >> b(1, vector< int >(2, 0));
                      ^~~
prog.cpp:12:10: error: ‘b’ was not declared in this scope
  solve(a,b);
          ^
prog.cpp:12:11: error: ‘solve’ was not declared in this scope
  solve(a,b);
           ^
prog.cpp: At global scope:
prog.cpp:17:1: error: ‘vector’ does not name a type
 vector< int > solve(vector< int > &A, vector<vector< int > > &B) {
 ^~~~~~
stdout
Standard output is empty