Submit | All submissions | Best solutions | Back to list |
ABSURD - Absurd prices |
Surely you know that supermarkets, shopping centres, and indeed all kind of vendors seem to have fallen in love with the digit 9, for that digit occurs most often in the price of a product, preferably at the least significant positions. Your favourite chocolate bar might cost 99 cents, just right to be able to advertise that it costs less than 1 euro. Your new bicycle might cost 499.98 euros, which, of course, is less than 500 euros.
While such comparisons are mathematically sound, they seem to impose a certain amount of stupidity on the customer. Moreover, who wants to carry home those annoying small coins you get back as change?
Fortunately, the FIFA has not adopted this weird pricing scheme: a ticket for the final in the first category for example costs 900 dollar, in the second category 600 dollar and in the third category 400 dollar. These prices may only be regarded weird for other reasons.
We want to distinguish between absurd prices like 99 cents, 499.98 euros, etc. and normal prices. To measure the absurdity of a positive integer, do the following:
- Eliminate all trailing zeros, i.e., those in the least significant positions, from the number. You now have a positive integer, say x, with a non-zero digit d at its end.
- Count the number of digits, say a, of the number x.
- if d=5 the absurdity of the number is 2 * a - 1
- otherwise, the absurdity of the number is 2 * a
For example, the absurdity of 350 is 3 and the absurdity of 900900 is 8. Using the measure of absurdity, we can define what we call an absurd price: A price c is absurd if and only if the closed interval [0.95 * c,1.05 * c] contains an integer e such that the absurdity of e is less than the absurdity of c. Given a price in cents, go ahead and tell whether it is absurd!
Input
The first line of the input consists of the number t of test cases to follow. Each test case is specified by one line containing an integer c. You may assume that 1 ≤ c ≤ 109.
Output
For each test case output if c is absurd or not. Adhere to the format shown in the sample output.
Example
Input: 4 99 49998 90000 970000000 Output: absurd absurd not absurd absurd
Added by: | Adrian Kuegel |
Date: | 2010-06-18 |
Time limit: | 1s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | All except: NODEJS OBJC PERL6 SQLITE VB.NET |
Resource: | German Collegiate Programming Contest 2010 (Authors: Walter Guttmann/Adrian Kuegel) |
hide comments
|
||||||
2012-11-28 04:14:37 Aditya Pande
finally AC after a lot of WA Last edit: 2012-12-19 09:52:05 |
||||||
2012-10-17 13:12:04 Adrian Kuegel
hint: can you construct the number with the smallest distance which has less absurdity than the given number? |
||||||
2012-10-13 08:12:56 YouKnowWho
TLE by bruteforce. any hints for a better way? |
||||||
2012-01-13 19:54:45 naivecoder
has any1 hot some idea about the trick to solve it...i am getting TLE by brute force... :( |
||||||
2011-08-27 11:42:32 Anuj Mahajan
Don't know why i am getting WA ?? some special test cases.........?? |
||||||
2011-08-12 06:33:32 darryl
if you get wa, try 210 and 110 |
||||||
2011-03-18 12:02:57 :D
Yes, but I wouldn't call that a "trick". You simply have to analyse the problem and not just go with the brute force approach. |
||||||
2011-03-18 11:17:59 Adrian Kuegel
well, there is an algorithm which takes O(1) time for each test case. |
||||||
2011-03-11 13:05:40 chayan ghosh
time limit exceeded.... :( is thr ne trick to solve it? |
||||||
2011-01-11 00:26:19 Mike
hey ::x:: -> i have got the answer. please check your program for closed interval, Not for open interval. |