Cod sursa(job #465714)
Utilizator | Data | 25 iunie 2010 12:29:36 | |
---|---|---|---|
Problema | Ratphu | Scor | 0 |
Compilator | c | Status | done |
Runda | Stelele Informaticii 2010, gimnaziu si clasa a IX-a, Ziua 1 | Marime | 3.54 kb |
#include<stdio.h>
char c;
long n,i,num,x,k,f[19],y;
int main()
{
freopen("ratphu.in","r",stdin);
freopen("ratphu.out","w",stdout);
n=1;
while(x==0)
{
++num;
scanf("%c",&c);
if(c=='\n')
x=1;
else
f[num]=c;
}
scanf("%ld",&k);
if(k==1)
{
for(i=1;i<=num;++i)
n=n*i;
printf("%ld\n",n);
return 0;
}
if(k==2)
{
for(i=1;i<=num;++i)
if(f[i]%2==0)
++x;
for(i=1;i<num;++i)
n=n*i;
printf("%ld\n",n*x);
return 0;
}
if(k==3)
{
for(i=1;i<=num;++i)
x+=f[i];
if(x%3==0)
{
for(i=1;i<=n;++i)
n=n*i;
printf("%ld\n",n);
}
else
printf("0\n");
return 0;
}
if(k==9)
{
for(i=1;i<=num;++i)
x+=f[i];
if(x%9==0)
{
for(i=1;i<=n;++i)
n=n*i;
printf("%ld\n",n);
}
else
printf("0\n");
return 0;
}
if(k==5)
{
for(i=1;i<=num;++i)
if(f[i]%5==0)
++x;
for(i=1;i<num;++i)
n=n*i;
printf("%ld\n",x*n);
return 0;
}
if(k==10)
{
for(i=1;i<=num;++i)
if(f[i]%10==0)
++x;
for(i=1;i<num;++i)
n=n*i;
printf("%ld\n",x*n);
return 0;
}
if(k==20)
{
for(i=1;i<=num;++i)
if(f[i]==0)
++y;
else
if(f[i]%2==0)
++x;
for(i=1;i<num-1;++i)
n=n*i;
printf("%ld\n",n*x*y);
return 0;
}
if(k==15)
{
for(i=1;i<=num;++i)
x+=f[i];
if(x%3!=0)
{
printf("0\n");
return 0;
}
x=0;
for(i=1;i<=num;++i)
if(f[i]%5==0)
++x;
for(i=1;i<num;++i)
n=n*i;
printf("%ld\n",n*x);
return 0;
}
if(k==6)
{
for(i=1;i<=num;++i)
x+=f[i];
if(x%3!=0)
{
printf("0\n");
return 0;\
}
x=0;
for(i=1;i<=num;++i)
if(f[i]%2==0)
++x;
for(i=1;i<num;++i)
n=n*i;
printf("%ld\n",n*x);
return 0;
}
if(k==18)
{
for(i=1;i<=num;++i)
x+=f[i];
if(x%9!=0)
{
printf("0\n");
return 0;
}
for(i=1;i<=num;++i)
if(f[i]%2==0)
++x;
for(i=1;i<num;++i)
n=n*i;
printf("%ld\n",n*x);
return 0;
}
fclose(stdin);
fclose(stdout);
return 0;
}