Cod sursa(job #1821576)

Utilizator medicinedoctoralexandru medicinedoctor Data 3 decembrie 2016 12:42:19
Problema Pascal Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>
#include <vector>

using namespace std;

vector <vector <int> > a;
int n,d,c=0;

void adun(int x)
{
    if (d==2 && a[x][0]>0) c++;
    if (d==3 && a[x][1]>0) c++;
    if (d==4 && a[x][0]>1) c++;
    if (d==5 && a[x][2]>0) c++;
    if (d==6 && a[x][0]>0 && a[x][1]>0) c++;
}

void calc()
{
    a.resize(n+1);
    a[0].resize(3);
    fill(a[0].begin(),a[0].end(),0);
    for (int i=1; i<=n; i++)
    {
        a[i]=a[i-1];
        if ((n-i+1) % 2 == 0) a[i][0]++;
        if ((n-i+1) % 4 == 0) a[i][0]++;
        if ((n-i+1) % 3 == 0) a[i][1]++;
        if ((n-i+1) % 5 == 0) a[i][2]++;
        if ( i % 2 == 0) a[i][0]--;
        if ( i % 4 == 0) a[i][0]--;
        if ( i % 3 == 0) a[i][1]--;
        if ( i % 5 == 0) a[i][2]--;
        adun(i);
    }
}

main()
{
    ifstream cin("pascal.in");
    cin >> n >> d;
    cin.close();
    calc();
    ofstream cout("pascal.out");
    cout << c ;
    cout.close();
}