Cod sursa(job #2097435)

Utilizator circeanubogdanCirceanu Bogdan circeanubogdan Data 31 decembrie 2017 13:35:41
Problema Pascal Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.28 kb
#include <fstream>
#define DIM 5000002

using namespace std;

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

int n, d, DOI, TREI, PATRU, CINCI, SASE, doi[DIM], trei[DIM], cinci[DIM];
bool viz[DIM];

int main()
{
    f>>n>>d;
    doi[2] = 1;
    trei[3] = 1;
    cinci[5] = 1;
    for(int i = 2; i <= n; ++ i){
        int nr = i;
        if(!viz[i]){
            for(int j = 2; j * i <= n; ++ j){
                if(viz[i * j])
                    continue;
                doi[i * j] += doi[i] + doi[j];
                trei[i * j] += trei[i] + trei[j];
                cinci[i * j] += cinci[i] + cinci[j];
                viz[i * j] = 1;
            }
            viz[i] = 1;
        }
    }
    DOI = 0;
    TREI = 0;
    CINCI = 0;
    int s = 0;
    for(int i = 0; i <= n; ++ i){
        if(d == 2 && DOI > 0)
            ++ s;
        if(d == 3 && TREI > 0)
            ++ s;
        if(d == 4 && DOI > 1)
            ++ s;
        if(d == 5 && CINCI > 0)
            ++ s;
        if(d == 6 && DOI > 0 && TREI > 0)
            ++ s;
        DOI -= doi[i + 1];
        TREI -= trei[i + 1];
        CINCI -= cinci[i + 1];
        DOI += doi[n - i];
        TREI += trei[n - i];
        CINCI += cinci[n - i];
    }
    g<<s;
    return 0;
}