Submission #1227318

#TimeUsernameProblemLanguageResultExecution timeMemory
1227318jer033Progression (NOI20_progression)C++20
0 / 100
152 ms7496 KiB
#include <bits/stdc++.h>
using ll = long long;
using namespace std;

ll solve(vector<ll> diff, int l, int r)
{
    if ((r-l)<=1)
        return r-l+1;
    int N = diff.size();
    vector<int> barriers;
    barriers.push_back(l);
    for (int i=l+1; i<=(r-1); i++)
    {
        if (2*diff[i]-diff[i-1]-diff[i+1])
            barriers.push_back(i);
    }
    barriers.push_back(r);
    int k = barriers.size();
    int bes = 0;
    for (int i=1; i<k; i++)
        bes = max(bes, barriers[i]-barriers[i-1]);
    bes++;
    return bes;
}

int main()
{
    int N, Q; cin >> N >> Q;
    vector<ll> diff(N);
    for (int i=0; i<N; i++)
        cin >> diff[i];
    vector<ll> ddiff(N);
    ll curr_ans = solve(diff, 0, N-1);
    while (Q--)
    {
        int p; cin >> p;
        if (p==2)
            curr_ans = N;
        else if (p==3)
            cout << curr_ans << '\n';
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...