Cod sursa(job #767264)
| Utilizator | Data | 13 iulie 2012 01:25:07 | |
|---|---|---|---|
| Problema | Divk | Scor | 20 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.57 kb |
#include <fstream>
using namespace std;
ifstream fin ("divk.in");
ofstream fout ("divk.out");
int v[500007],m[3][500007];
int main()
{
int n,a,b,k,i,nr,j,rest=0;
fin>>n>>k>>a>>b;
for (i=1;i<=n;i++)
fin>>v[i];
nr=0;
for(i=2;i<=n;i++)
for (j=2;j<=i;j++)
{
if ( j==2 )
rest=(v[i-1]+v[i])%k;
else
rest=(m[!(i%2)][j-1]+v[i])%k;
if(!rest&&j>=a&&j<=b)
nr++;
m[i%2][j]=rest;
}
fout<<nr;
return 0;
}
