/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 540.0 KiB
#2 Accepted 1ms 540.0 KiB
#3 Accepted 1ms 492.0 KiB
#4 Accepted 1ms 488.0 KiB
#5 Accepted 1ms 488.0 KiB
#6 Accepted 1ms 440.0 KiB
#7 Accepted 1ms 436.0 KiB
#8 Accepted 1ms 540.0 KiB
#9 Accepted 1ms 388.0 KiB
#10 Accepted 1ms 524.0 KiB
#11 Accepted 14ms 612.0 KiB
#12 Accepted 10ms 540.0 KiB
#13 Accepted 10ms 612.0 KiB
#14 Accepted 10ms 612.0 KiB
#15 Accepted 10ms 608.0 KiB
#16 Accepted 16ms 608.0 KiB
#17 Accepted 16ms 608.0 KiB
#18 Accepted 145ms 1.281 MiB
#19 Accepted 146ms 1.281 MiB
#20 Accepted 85ms 1.281 MiB
#21 Accepted 151ms 1.281 MiB
#22 Accepted 18ms 1.285 MiB
#23 Accepted 93ms 1.277 MiB
#24 Accepted 86ms 1.277 MiB
#25 Accepted 82ms 1.277 MiB
#26 Accepted 82ms 1.281 MiB

Code

/*
 *   Copyright (c) 2024 Emon Thakur
 *   All rights reserved.
 */
#include<bits/stdc++.h>
using namespace std;
void solve()
{
    int n,k,x; cin>>n>>k>>x;
    int a[n],b[n];
    for(int i=0;i<n;i++) cin>>a[i];

    int ans=0,left,right;
    for(int gcd=x+1;gcd<=200;gcd++)
    {
        for(int i=0;i<n;i++)
        {
            b[i] = (gcd-(a[i]%gcd))%gcd;
        }
        //b[0]=5;
        left=0,right=0;
        int rem = k;
        while(right<n)
        {
            if(rem<b[right])
            {
                if(left==right) {left++; right++; continue;}
                rem += b[left];
                ++left;
                continue;
            }
            rem -= b[right];
            ans = max(ans,right-left+1);
            ++right;
        }
        if(ans==n) break;
    }
    cout<<ans<<endl;
}
int main()
{
    solve();
}

Information

Submit By
Type
Submission
Problem
P1043 Longest subarray
Language
C++20 (G++ 13.2.0)
Submit At
2024-03-24 20:26:37
Judged At
2024-03-24 20:26:37
Judged By
Score
100
Total Time
151ms
Peak Memory
1.285 MiB