Cod sursa(job #2100874)
Utilizator | Data | 6 ianuarie 2018 15:03:58 | |
---|---|---|---|
Problema | Pascal | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.6 kb |
#include <fstream>
using namespace std;
ifstream f("pascal.in");
ofstream g("pascal.out");
int i,d,j,q,q1,q2,x,sol;
int main()
{
f>>i>>d;
if(d==2||d==3||d==5){
for(j=0;j<(i+1)/2;j++){
if(q>=1)
sol+=2;
int x=i-j;
while(x%d==0){
q++;
x/=d;
}
x=j+1;
while(x%d==0){
q--;
x/=d;
}
}
if(i%2==0&&q>=1)
sol++;
g<<sol;
return 0;
}
if(d==4){
for(j=0;j<(i+1)/2;j++){
if(q>=2)
sol+=2;
int x=i-j;
while(x%2==0){
q++;
x/=2;
}
x=j+1;
while(x%2==0){
q--;
x/=2;
}
}
if(i%2==0&&q>=2)
sol++;
g<<sol;
return 0;
}
for(j=0;j<(i+1)/2;j++){
if(q1>=1&&q2>=1)
sol+=2;
int x=i-j;
while(x%2==0){
q1++;
x/=2;
}
x=j+1;
while(x%2==0){
q1--;
x/=2;
}
x=i-j;
while(x%3==0){
q2++;
x/=3;
}
x=j+1;
while(x%3==0){
q2--;
x/=3;
}
}
if(i%2==0&&q1>=1&&q2>=1)
sol++;
g<<sol;
return 0;
return 0;
}