Advertisement
ekzolot

Untitled

Jan 30th, 2023
776
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.73 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4. int gcd(int a, int b){
  5.     if (a==0){
  6.         return b;
  7.     }
  8.     return gcd(b%a, a);
  9. }
  10. void build(vector<int>& tree, vector<int>& a, int v, int l, int r){
  11.     if (r-l==1){
  12.         tree[v]=a[l];
  13.         return;
  14.     }
  15.     int m=(r+l)/2;
  16.     build(tree, a, 2*v+1, l, m);
  17.     build(tree, a, 2*v+2, m, r);
  18.     tree[v]=gcd(tree[2*v+1], tree[2*v+2]);
  19.     return;
  20. }
  21. int main(){
  22.     int n;
  23.     cin>>n;
  24.     vector<int> a(n);
  25.     for (int i=0; i<n; i++){
  26.         cin>>a[i];
  27.     }
  28.     vector<int> tree(4*n);
  29.     build(tree, a, 0, 0, n);
  30.     if ((a[n-1]/tree[0])%2==n%2){
  31.         cout<<"Bob"<<"\n";
  32.         return 0;
  33.     }
  34.     cout<<"Alice"<<"\n";
  35.     return 0;
  36. }
  37.  
  38.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement