Pagini recente » Cod sursa (job #713337) | Cod sursa (job #593166) | Cod sursa (job #93387) | Cod sursa (job #1133656) | Cod sursa (job #2009250)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("divk.in");
ofstream fout("divk.out");
int n, k, a, b, c, sum, v[500004], f[500005], r[500005], s[500005], j, i, nr, x, y;
int main () {
fin >> n >> k >> a >> b;
x = a; y = b;
for (i = 1; i <= n; i++)
{
fin >> v[i];
s[i] += s[i-1]+v[i];
v[i] += v[i-1];
v[i-1] %= k;
}
v[n] %= k;
c = b-a+1;
for (i = 1; i <= n; i++)
{
f[v[i]]++;
if (i > c) f[v[i-c]]--;
if (i+a <= n) r[i+a] = f[v[i+a]];
if (v[i] == 0 && i <= b && i >= a)
r[i]++;
sum += r[i];
}
for (i = 1; i <= n; i++)
cout << r[i] << " "; cout << "\n";
for (i = 1; i <= n; i++)
cout << f[i] << " "; cout << "\n";
for (i = 1; i <= n; i++)
for (j = 1; j < i; j++)
{
if ((s[i]-s[j-1]) % k == 0 && i-j <= y-1 && i-j >= x-1)
nr++;
}
cout << sum << "\n";
cout << "Corect: " << nr << "\n";
}