Submission #813589

#TimeUsernameProblemLanguageResultExecution timeMemory
813589danikoynovProgression (NOI20_progression)C++14
15 / 100
3070 ms4888 KiB
#include<bits/stdc++.h>
#define endl '\n'

using namespace std;
typedef long long ll;

void speed()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
}

const int maxn = 3e5 + 10;

int n, q;
ll d[maxn];
void solve()
{
    cin >> n >> q;
    for (int i = 1; i <= n; i ++)
        cin >> d[i];

    for (int i = 1; i <= q; i ++)
    {
        int type, l, r, s, c;
        cin >> type >> l >> r;
        if (type == 1)
        {
            cin >> s >> c;
            for (int j = l; j <= r; j ++)
                d[j] += s + (j - l) * c;
        }
        else
        if (type == 2)
        {
            cin >> s >> c;
            for (int j = l; j <= r; j ++)
                d[j] = s + (j - l) * c;
        }
        else
        {
            int len = min(r - l, 1), ans = 0;
            for (int j = l + 2; j <= r; j ++)
            {
                if (d[j] - d[j - 1] == d[j - 1] - d[j - 2])
                    len ++;
                else
                {
                    ans = max(ans, len);
                    len = 1;
                }
            }
            ans = max(ans, len);
            cout << ans + 1 << endl;
        }

        /**for (int j = 1; j <= n; j ++)
            cout << d[j] << " ";
        cout << endl;*/
    }
}

int main()
{
    speed();
    solve();
    return 0;
}
#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...