Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <algorithm>
- using namespace std;
- // TÚL SOKSZOR FUT LE A REKURZÍV FÜGGVÉNY, NEM JÓ
- template<typename Iter>
- int maxKorong(Iter k, size_t n, int balPont, int jobbPont, int korszam) {
- //for(int i = 0; i < n; i++) {
- //cout << k[i] << " ";
- //}
- //cout << jobbPont << " " << korszam << endl;
- int balPontS = balPont, jobbPontS = jobbPont;
- if(korszam%2==0) {
- if (n == 1) return k[0] == 1 ? max(++balPont, ++jobbPont) : max(balPont, jobbPont);
- if(k[0] == 1) balPontS++;
- if(k[n-1] == 1) jobbPontS++;
- } else if (n==1) return max(balPont, jobbPont);
- int subArrayLeft[n-1]; int subArrayRight[n-1];
- for(int i = 0; i <= n - 1; i++) {
- if(i==0) subArrayLeft[0] = k[0];
- else if(i==n-1) subArrayRight[i-1] = k[i];
- else {
- subArrayLeft[i] = k[i];
- subArrayRight[i-1] = k[i];
- }
- }
- ++korszam;
- return max(maxKorong(k, n-1, balPont, jobbPontS, korszam), maxKorong(k+1, n-1, balPontS, jobbPont, korszam));
- }
- int main()
- {
- int n;
- cin >> n;
- int korongok[n];
- for(int i = 0; i < n; i++) {
- cin >> korongok[i];
- }
- cout << maxKorong(korongok, n, 0, 0, 0);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement