Cod sursa(job #1429818)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 7 mai 2015 11:51:02
Problema Pascal Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
#define DIM 5000010
using namespace std;

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

int N, D1[DIM], D2[DIM], S, i, nr;

inline void Divide(int D[], int st, int dr, int S){
    int K = dr - st + 1;
    if(K == 1){
        D[st] = 1;
        D[dr] = 1;
        return;
    }
    int val = 1;
    while(val * S < K)
        val *= S;
    val = K - val;
    Divide(D, st, st+val-1, S);
    Divide(D, dr-val+1, dr, S);
    return;
}

inline void CodeExpert(){
    fin >> N >> S; N ++;
    if(S == 6){
        Divide(D1, 1, N, 2);
        Divide(D2, 1, N, 3);
        for(i = 1; i <= N; i ++)
            if(!D1[i] && !D2[i])
                nr ++;
        fout << nr;
    }
    else{
        Divide(D1, 1, N, S);
        for(i = 1; i <= N; i ++)
            if(!D1[i])
                nr ++;
        fout << nr;
    }
    return;
}

int main(){
    CodeExpert();
    return 0;
}