Cod sursa(job #1764180)

Utilizator Lungu007Lungu Ionut Lungu007 Data 25 septembrie 2016 08:50:45
Problema Pascal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <iostream>
#include <fstream>
#define DMAX 7
#define NMAX 5000000
using namespace std;

ifstream in("pascal.in");
ofstream out("pascal.out");

int r,d,divv,sus,jos,contor,doi,trei,cinci;

unsigned short a2[NMAX],a3[NMAX],a5[NMAX];

int main()
{
    in >> r >> divv;

    for(int i=2;i<=r;i+=2)
    {
        a2[i] = a2[i/2] + 1;
        //cout << i << " " << a2[i] << endl;
    }

    for(int i=3;i<=r;i+=3)
    {
        a3[i] = a3[i/3] + 1;
    }

    for(int i=5;i<=r;i+=5)
    {
        a5[i] = a5[i/5] + 1;
    }
    for(int k=1;k<r;k++)
    {
        doi += a2[r-k+1] - a2[k];
        trei+= a3[r-k+1] -a3[k];
        cinci+= a5[r-k+1] -a5[k];
       // cout << doi << " " << trei << endl;
        if(divv == 3 && trei) contor++;
        if(divv == 2 && doi) contor++;
        if(divv == 5 && cinci) contor++;
        if(divv == 4 && doi>=2) contor++;
        if(divv == 6 && doi && trei){contor++;}
    }
    out << contor;
    return 0;
}