Pagini recente » Cod sursa (job #2975924) | Cod sursa (job #2779444) | Cod sursa (job #2845435) | Cod sursa (job #3279533) | Cod sursa (job #1186179)
#include <iostream>
#include <fstream>
#include <vector>
#define maxn 5000010
using namespace std;
ifstream f("divk.in");
ofstream g("divk.out");
long v[maxn][maxn];
void citire (long &n, long &k, long &a, long &b, long &nr)
{
f>>n>>k>>a>>b;
for(long i=1;i<=n;i++)
{
f>>v[1][i];
if(a<=1 && v[1][i]%k==0) nr++;
if(i>1)
{
v[2][i] = v[1][i-1] + v[1][i];
if(a<=2 && v[2][i]%k==0) nr++;
}
}
}
void abaltSzalona(long n,long a,long b,long k, long&nr)
{
for(long i=3;i<=n;i++)
{
for(long j=i;j<=n;j++)
{
v[i][j] = v[i-1][j-1] + v[i-1][j] - v[i-2][j-1];
if(i>=a && i<=b)
if(v[i][j]%k==0) nr++;
}
}
}
int main()
{
long n,k,a,b,nr=0;
citire(n,k,a,b,nr);
abaltSzalona(n,a,b,k,nr);
g<<nr;
return 0;
}