Cod sursa(job #2797607)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 10 noiembrie 2021 11:58:00
Problema Pascal Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<fstream>
using namespace std;
ifstream F("pascal.in");
ofstream G("pascal.out");
int p[10],r,d,s,i,j,k;
int main()
{
    F>>r>>d;
    if(d==2)
		for(i=1;i<=r/2;++i) {
			for(j=r-i+1;j&1==0;++p[2],j>>=1);
			for(k=i;k&1==0;--p[2],k>>=1);
			s+=!!(p[2]);
		}
	else if(d==3)
		for(i=1;i<=r/2;++i) {
			for(j=r-i+1;j%3==0;++p[3],j/=3);
			for(k=i;k%3==0;--p[3],k/=3);
			s+=!!(p[3]);
		}
	else if(d==4)
		for(i=1;i<=r/2;++i) {
			for(j=r-i+1;j&1==0;++p[2],j>>=1);
			for(k=i;k&1==0;--p[2],k>>=1);
			s+=!!(p[2]>>1);
		}
	else if(d==5)
		for(i=1;i<=r/2;++i) {
			for(j=r-i+1;j%5==0;++p[5],j/=5);
			for(k=i;k%5==0;--p[5],k/=5);
			s+=!!(p[5]);
		}
	else if(d==6)
		for(i=1;i<=r/2;++i) {
			for(j=r-i+1;j&1==0;++p[2],j>>=1);
			for(k=i;k&1==0;--p[2],k>>=1);
			for(j=r-i+1;j%3==0;++p[3],j/=3);
			for(k=i;k%3==0;--p[3],k/=3);
			s+=!!p[2]&&!!p[3];
		}
    if(s&&!(r&1))
		s=(s<<1)-1;
	else
		s<<=1;
    G<<s;
    return 0;
}