Cod sursa(job #1725038)

Utilizator valentin50517Vozian Valentin valentin50517 Data 4 iulie 2016 19:25:52
Problema Pascal Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<bits/stdc++.h>
using namespace std;

int D[2][2500100];
int f(int n,int p){
	int rs = 0,k = p;
	while(p <= n) rs+=n/p,p*=k;
	return rs;
}
int main(){
	ifstream cin("pascal.in");
    ofstream cout("pascal.out");
	int N,D,rs = 0;
	cin>>N>>D;
	if(D == 6){
		int d1n = f(N,2),d2n = f(N,3);
		for(int d1,d2,i = 1;i<N;i++){
			d1 = f(N-i,2)+f(i,2);
			d2 = f(N-i,3)+f(i,3);
			if(min(d1n-d1,d2n-d2) >= 1) rs++;
		}
	}else{
		int dn = f(N,D);
		for(int d,i=1;i<N;i++){
			d = f(N-i,D) + f(i,D);
			rs+=((D==4 && dn-d >= 2) || (D!=4 && dn-d >= 1) ? 1 : 0);
		}
	}
	cout << rs << '\n'; 
	
    return 0;
}