Sort by

recency

|

31 Discussions

|

  • + 0 comments

    Can someone please help me. I am getting time limit exceeded error for the below solution

    import java.io.; import java.math.; import java.security.; import java.text.; import java.util.; import java.util.concurrent.; import java.util.function.; import java.util.regex.; import java.util.stream.*; import static java.util.stream.Collectors.joining; import static java.util.stream.Collectors.toList;

    class Result {

    /*
     * Complete the 'solve' function below.
     *
     * The function is expected to return a LONG_INTEGER.
     * The function accepts LONG_INTEGER n as parameter.
     */
    
    public static long calcTrailingZeroes(long m){
       if (m == 0) {
            return 0;
        }
    
        return m / 5 + calcTrailingZeroes(m / 5);
    }
    
    public static long solve(long n) {
     long result=-1;
     long lowerLimit=5;
     long upperLimit=5*(10^16);
     long mid=(lowerLimit+upperLimit)/2;
        while(lowerLimit<=upperLimit){
            if(calcTrailingZeroes(mid)<=n){
                result=mid;
                upperLimit=mid-1;
            }else{
                lowerLimit=mid+1;
            }
        }
        return result;
    
    }
    

    }

    public class Solution { public static void main(String[] args) throws IOException { BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));

        int t = Integer.parseInt(bufferedReader.readLine().trim());
    
        IntStream.range(0, t).forEach(tItr -> {
            try {
                long n = Long.parseLong(bufferedReader.readLine().trim());
    
                long result = Result.solve(n);
    
                bufferedWriter.write(String.valueOf(result));
                bufferedWriter.newLine();
            } catch (IOException ex) {
                throw new RuntimeException(ex);
            }
        });
    
        bufferedReader.close();
        bufferedWriter.close();
    }
    

    }

  • + 0 comments

    a good article click

  • + 0 comments

    Hey , I am not sure what went wrong with this logic. it is giving time limit error for almost all the cases.https://calcularrfc.com.mx/ Any help would be appreciated

  • + 0 comments

    in the statement it is said that n<=1e16, but in the test cases there are values greater than that. maybe what was meant that n has at most 16 digits

  • + 0 comments

    Using Binary Search:

    def solve(n): def count(x): res = 0 while x: t = x//5 res+=t x = t return res

    l,r = 5,5*(10**16)
    res = 5
    while l<=r:
        mid = (l+r)//2
        if count(mid)>=n:
            res = mid
            r = mid - 1
        else:
            l = mid + 1
    return res