Cod sursa(job #2268304)
| Utilizator | Data | 24 octombrie 2018 17:49:39 | |
|---|---|---|---|
| Problema | Divk | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.54 kb |
#include<fstream>
using namespace std;
long long n,k,a,b,sol;
long long dp[500005];
int fr[100005];
int main()
{
ifstream fin("divk.in");
ofstream fout("divk.out");
fin>>n>>k>>a>>b;
for(int i=1; i<=n; ++i)
{
int x;
fin>>x;
dp[i]=x+dp[i-1];
}
for(int i=1; i<=n; ++i)
{
if(i-b-1>=0)
{
fr[dp[i-b-1]%k]--;
}
if(i-a>=0)
{
fr[dp[i-a]%k]++;
}
sol+=fr[dp[i]%k];
}
fout<<sol;
}
