Cod sursa(job #1186191)

Utilizator andi23roscaRosca Andrei andi23rosca Data 17 mai 2014 12:19:06
Problema Divk Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <iostream>
#include <fstream>
#include <vector>
#define maxn 500001

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;
}