Cod sursa(job #3329445)

Utilizator 20r50Gheorghies Robert 20r50 Data 13 decembrie 2025 10:53:41
Problema Divk Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <bits/stdc++.h>
#define ll long long
#define lma LLONG_MAX
#define lmi LLONG_MIN
#define pii pair<int,int>
#define mii map<ll,ll>
#define ld long double
#define fxtsetp fixed<<setprecision
using namespace std;
const ll NMAX=2e5+5;
const ll MOD=72;
vector<int> v;
void probleme()
{
    v.push_back(0);
    ll n,x,k,a,b,s=0,rsp=0;
    cin>>n>>k>>a>>b;
    for(ll i=1;i<=n;i++){
        cin>>x;
        x%=k;
        s+=x;
        v.push_back(s);
    }
    for(ll i=1;i<v.size()-1;i++){
        for(ll j=i+a-1;j<i+b && j<v.size();j++)
            if((v[j]-v[i-1])%k==0)
                rsp++;
    }
    cout<<rsp;
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
#ifdef LOCAL
    freopen("thing2.in","r",stdin);
    freopen("thing2.out","w",stdout);
#else
    freopen("divk.in","r",stdin);
    freopen("divk.out","w",stdout);
#endif
    // ll t; cin>>t; while(t--)
    probleme();
    return 0;
}
/**
x = 9x+r1
x = 8y+r2

x=72x-72y+8r1-9r2
 =72(x-y)+8r1-9r2
 =8r1-9r2

 r1 : if N(n) = 1 => nnn %8
              = 2 => u(n)n %8 , k>=2

              = n%8 , n>99 si/sau k=1

 r2 : S(n) * k %9
**/