Task: | Cent saving |
Sender: | Spitfire |
Submission time: | 2016-05-28 14:54:57 +0300 |
Language: | C++ |
Status: | READY |
Result: | WRONG ANSWER |
test | verdict | time | |
---|---|---|---|
#1 | WRONG ANSWER | 0.06 s | details |
#2 | WRONG ANSWER | 0.06 s | details |
Code
#include <iostream>#include <cstdint>inline unsigned int round(unsigned int n, unsigned int d) {switch(d) {case 0:case 1:case 2:return (n / 10) * 10;case 3:case 4:case 5:case 6:case 7:return (n / 10) * 10 + 5;case 8:case 9:return (n / 10) * 10 + 10;}return 0;}inline bool is_cheap(unsigned int n) {switch(n) {case 0:case 1:case 2:case 5:case 6:case 7:return true;}return false;}int main(){std::ios_base::sync_with_stdio(0);std::cin.tie(0);unsigned int t;std::cin >> t;unsigned int nb;for (size_t i = 0; i < t; i++) {std::cin >> nb;unsigned int input;unsigned int digit;uint64_t sum = 0;uint64_t temp_sum = 0;for (size_t j = 0; j < nb; j++) {std::cin >> input;digit = input % 10;if (is_cheap(digit)) {sum += round(input, digit);continue;}temp_sum += input;digit = temp_sum % 10;if (is_cheap(digit)) {sum += round(temp_sum, digit);temp_sum = 0;}}digit = temp_sum % 10;sum += round(temp_sum, digit);std::cout << sum << std::endl;}return 0;}
Test details
Test 1
Verdict: WRONG ANSWER
input |
---|
100 1000 528433894 255789530 559301042 ... |
correct output |
---|
475191144965 460688647850 478543444030 475238936090 456736521510 ... |
user output |
---|
475191145085 460688647960 478543444145 475238936190 456736521630 ... Truncated |
Test 2
Verdict: WRONG ANSWER
input |
---|
1 100000 666086355 190481330 514353517 ... |
correct output |
---|
47176864928795 |
user output |
---|
47176864939695 |