#include<bits/stdc++.h> #define int long long using namespace std; int n,t[1000005],pref[1000005]; int pam[1000005]; int mod = 1e9 + 7; int lp(int a); bool dziala(int a,int b); main() { ios_base::sync_with_stdio(0); //szpaku d-_-b cin >> n; for(int i = 1 ; i <= n ; i++) { cin >> t[i]; pref[i] = pref[i-1] + t[i]; pam[i] = -1; } cout << lp(1); } bool dziala(int a,int b) { if(((pref[b] - pref[a-1])%mod)%2 == 0) return true; return false; } int lp(int a) { if(pam[a] != -1) return pam[a]; int ret = 0; for(int i = a ; i < n ; i++) { if(dziala(a,i)) ret = (ret + lp(i+1)) % mod; } if(dziala(a,n)) ret++; pam[a] = ret % mod; return ret % mod; } /* ░░░░░░░░░░░░░▄▄▀▀▀▀▀▀▄▄ ░░░░░░░░░░▄▄▀▄▄▄█████▄▄▀▄ ░░░░░░░░▄█▀▒▀▀▀█████████▄█▄ ░░░░░░▄██▒▒▒▒▒▒▒▒▀▒▀▒▀▄▒▀▒▀▄ ░░░░▄██▀▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒█▄ ░░░░██▀▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒█▌ ░░░▐██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▐█ ░▄▄███▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒█ ▐▒▄▀██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▐▌ ▌▒▒▌▒▀▒▒▒▒▒▒▄▀▀▄▄▒▒▒▒▒▒▒▒▒▒▒▒█▌ ▐▒▀▒▌▒▒▒▒▒▒▒▄▄▄▄▒▒▒▒▒▒▒▀▀▀▀▄▒▐ ░█▒▒▌▒▒▒▒▒▒▒▒▀▀▒▀▒▒▐▒▄▀██▀▒▒▒▌ ░░█▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▐▒▒▒▒▒▒▒▒█ ░░░▀▌▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▌▒▒▒▒▒▒▄▀ ░░░▐▒▒▒▒▒▒▒▒▒▄▀▐▒▒▒▒▒▐▒▒▒▒▄▀ ░░▄▌▒▒▒▒▒▒▒▄▀▒▒▒▀▄▄▒▒▒▌▒▒▒▐▀▀▀▄▄▄ ▄▀░▀▄▒▒▒▒▒▒▒▒▀▀▄▄▄▒▄▄▀▌▒▒▒▌░░░░░░ ▐▌░░░▀▄▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▄▀░░░░░░░ ░█░░░░░▀▄▄▒▒▒▒▒▒▒▒▒▒▒▒▄▀░█░░░░░░░ ░░█░░░░░░░▀▄▄▄▒▒▒▒▒▒▄▀░░░░█░░░░░░ ░░░█░░░░░░░░░▌▀▀▀▀▀▀▐░░░░░▐▌░░░░░ */
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | #include<bits/stdc++.h> #define int long long using namespace std; int n,t[1000005],pref[1000005]; int pam[1000005]; int mod = 1e9 + 7; int lp(int a); bool dziala(int a,int b); main() { ios_base::sync_with_stdio(0); //szpaku d-_-b cin >> n; for(int i = 1 ; i <= n ; i++) { cin >> t[i]; pref[i] = pref[i-1] + t[i]; pam[i] = -1; } cout << lp(1); } bool dziala(int a,int b) { if(((pref[b] - pref[a-1])%mod)%2 == 0) return true; return false; } int lp(int a) { if(pam[a] != -1) return pam[a]; int ret = 0; for(int i = a ; i < n ; i++) { if(dziala(a,i)) ret = (ret + lp(i+1)) % mod; } if(dziala(a,n)) ret++; pam[a] = ret % mod; return ret % mod; } /* ░░░░░░░░░░░░░▄▄▀▀▀▀▀▀▄▄ ░░░░░░░░░░▄▄▀▄▄▄█████▄▄▀▄ ░░░░░░░░▄█▀▒▀▀▀█████████▄█▄ ░░░░░░▄██▒▒▒▒▒▒▒▒▀▒▀▒▀▄▒▀▒▀▄ ░░░░▄██▀▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒█▄ ░░░░██▀▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒█▌ ░░░▐██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▐█ ░▄▄███▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒█ ▐▒▄▀██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▐▌ ▌▒▒▌▒▀▒▒▒▒▒▒▄▀▀▄▄▒▒▒▒▒▒▒▒▒▒▒▒█▌ ▐▒▀▒▌▒▒▒▒▒▒▒▄▄▄▄▒▒▒▒▒▒▒▀▀▀▀▄▒▐ ░█▒▒▌▒▒▒▒▒▒▒▒▀▀▒▀▒▒▐▒▄▀██▀▒▒▒▌ ░░█▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▐▒▒▒▒▒▒▒▒█ ░░░▀▌▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▌▒▒▒▒▒▒▄▀ ░░░▐▒▒▒▒▒▒▒▒▒▄▀▐▒▒▒▒▒▐▒▒▒▒▄▀ ░░▄▌▒▒▒▒▒▒▒▄▀▒▒▒▀▄▄▒▒▒▌▒▒▒▐▀▀▀▄▄▄ ▄▀░▀▄▒▒▒▒▒▒▒▒▀▀▄▄▄▒▄▄▀▌▒▒▒▌░░░░░░ ▐▌░░░▀▄▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▄▀░░░░░░░ ░█░░░░░▀▄▄▒▒▒▒▒▒▒▒▒▒▒▒▄▀░█░░░░░░░ ░░█░░░░░░░▀▄▄▄▒▒▒▒▒▒▄▀░░░░█░░░░░░ ░░░█░░░░░░░░░▌▀▀▀▀▀▀▐░░░░░▐▌░░░░░ */ |