Pagini recente » Cod sursa (job #884028) | Monitorul de evaluare | Istoria paginii utilizator/vatamanescu_ioana | Cod sursa (job #1602045) | Cod sursa (job #2004249)
#include <iostream>
#include <fstream>
#include <climits>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
long long p;//date de intrare
void citire(){
in >> p;
}
long long nrZerouri(long long nr){
long long nrZ = 0;
while(nr != 0){
nrZ += nr / 5;
nr /= 5;
}
return nrZ;
}
long long sol = -1;
void cautareBinara(long long & st, long long dr){
if(st <= dr){
long long mij = st + (dr - st) / 2;
long long var = nrZerouri(mij);
//out << mij << ' '<<var << '\n';
if(var < p){
st = mij + 1;
}
else if(var > p){
dr = mij - 1;
}
else{
sol = mij;
dr = mij - 1;
}
cautareBinara(st, dr);
}
}
void rezolvare(){
if(p < 0){
out << "-1";
}
else{
long long st = 1, dr = LLONG_MAX;
cautareBinara(st , dr);
out << sol;
}
}
int main(){
citire();
rezolvare();
return 0;
}