Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- const long long N = 1000005;
- bool SNT[N] = {false};
- long long n;
- long long bien;
- long long summ;
- vector<long long> huhu;
- vector<long long> luu;
- void san(){
- for(long long i = 3; i*i < n+1; i+=2){
- if(SNT[i]) continue;
- for(long long j = i+i; j < n+1; j+=i){
- SNT[j] = true;
- }
- }
- }
- long long kadane(){
- long long sumka = huhu[0];
- long long maxx = N*(-1);
- for(long long i = 1; i!= huhu.size(); i++){
- sumka -= luu[i-1];
- if(sumka < 0) sumka = 0;
- sumka += huhu[i];
- maxx = max(sumka,maxx);
- }
- return maxx;
- }
- int main() {
- ios_base::sync_with_stdio(false);
- cin.tie(NULL);
- cin >> n;
- san();
- cin >> bien;
- cin >> bien;
- summ = bien;
- long long tmaxx = N*(-1);
- long long tmaxx2 = bien;
- for(long long i = 3 ; i <= n; i++){
- cin >> bien;
- tmaxx = max(tmaxx, bien);
- summ += bien;
- if(!SNT[i] && i&1){
- luu.push_back(bien);
- tmaxx2 = max(tmaxx2, bien);
- huhu.push_back(summ);
- summ = bien;
- }
- }
- if(tmaxx <= 0) cout << tmaxx2;
- else cout << kadane();
- return 0;
- }
Add Comment
Please, Sign In to add comment