Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- #include <cstdlib>
- #include <iostream>
- #include <set>
- #include <vector>
- #include <map>
- #include <algorithm>
- #include <string>
- #include <cstring>
- #include <cmath>
- #include <fstream>
- #include <ctime>
- #include <queue>
- #define X first
- #define Y second
- #define pii pair<int,int>
- #define ll long long
- using namespace std;
- int n;
- vector<int> a;
- int ans;
- void rec(vector<int> x)
- {
- int sum=0;
- //cout<<x.size();
- for (int i=0;i<(int)x.size(); i++)
- {
- sum += x[i];
- //cout<<" "<<x[i];
- }
- //cout<<" "<<sum<<endl;
- ans = max(sum, ans);
- if ( (x.size()%2!=0) || (x.size()<6))
- return;
- vector<int> t1, t2;
- t1.resize(x.size()/2); t2.resize(x.size()/2);
- for (int i=0; i<(int)x.size(); i++)
- {
- if ( i%2==0)
- {
- t1[i/2]=x[i];
- }
- else
- {
- t2[i/2]=x[i];
- }
- }
- rec(t1);
- rec(t2);
- }
- int main()
- {
- scanf("%d", &n);
- a.resize(n);
- for (int i=0; i<n; i++)
- {
- scanf("%d", &a[i]);
- }
- ans=-20000*1000;
- rec(a);
- cout<<ans;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment