SPOJ Problem Set (classical)

1030. Triple Fat Ladies

Problem code: EIGHTS

Pattern Matchers have been designed for various sorts of patterns. Mr. HKP likes to observe patterns in numbers. After completing his extensive research on the squares of numbers, he has moved on to cubes. Now he wants to know all numbers whose cube ends in 888.

Given a number k, help Mr. HKP find the 1st number larger than k whose cube ends in 888.


The first line of the input contains an integer t, the number of test cases. t test cases follow.

Each test case consists of a single line containing a single integer k (1 ≤ k ≤ 20000).


For each test case, output a single integer which denotes the 1st number larger than k whose cube ends in 888. The result will be less than 263.




All Submissions
Best Solutions

Point Value: 5
Time Limit: 2.00s
Memory Limit: 16M
Added: Apr 08, 2011

Languages Allowed:

Comments (Search)


I created the algorithm, and when I test it, it seems to work well. However, when I put it into the submissions, I got a 45.45/100. I created a program which showed what the tester input. Heres what I got:

11 --> This is t the rest is k.

Only 5/11 were output (explains the score). However, when I ran this, there were no issues, even when I put in numbers which might trip it up (20001, -19). Is the problem with my program, or the tester?

We cut off output, partially to avoid situations such as the one you observed, where you attempt to print out the entire input file.

Generally speaking, if nearly 300 other people have solved the problem, and you have not, it's probably (but not always!) not an issue with the grader.

I've personally verified that your solution is incorrect.

Incidentally, there is no need to enter impossible input. The problem states that the bounds are 1 <= k <= 20000, and so you need not test anything outside that range.

My code runs perfectly on my computer. I even got the test cases and they're returned perfectly. But when I submit I get 0/100... (RE ; output clipped)

may I have a small hint? I got only 9.09/100. thanks

Premature optimisation is the root of all evil. Your approach is simply wrong -- you're reporting numbers that are cube roots of things ending in 888, but not necessarily the smallest ones greater than k.

thanks, i was stupid

Why does the modulus operator (%) get turned into 00 when I submit it?

You have to add an extra space between the % sign and the '1'. ie. % 10(0000)

Uploading from file works too.

My program gets a 54.4545454545 score
Can somebody possibly help me?

If not can someone give me some sample cases so i can fix the problem?
There is a somewhat lack of sample cases.

You should be making your own.

I ended up just listing all the outputs using a loop in the program. It ended up just being the range.
Don't need anymore help.

I get 0/100, can anyone figure what I did wrong? It says "Exception in thread ...", and I cannot view further.

You can't have "package peg;" at the top of your program.

got 0/100 am i understanding the question wrong?

The 0/100 is because you're exceeding the time limit.

Any hints on what I'm doing wrong?

What is wrong with my code
It works in eclipse

help Mr. HKP find the 1st number larger than k whose cube ends in 888.

i figured the algorithm which was simple but i still get mistakes

Your algorithm is wrong; try writing a program that will run from 1 to 5000 and output every integer n where n3 = 888 (mod 1000). You'll then see what you're missing.