#include <iostream> #include <string> int main() { int number_of_games; std::string price; std::string price1; std::string last_price; long long res=0; std::cin >> number_of_games; while(number_of_games--) { std::cin >> price; if(last_price.size() < price.size() || (last_price.size() == price.size() && last_price < price)) { // do nothing } else if(last_price.size() == price.size() && last_price >= price) { price.push_back('0'); res++; } else if(last_price.substr(0, price.size()) < price) { res += last_price.size() - price.size(); price.append(std::string(last_price.size() - price.size(), '0')); } else if(last_price.substr(0, price.size()) == price && last_price.substr(price.size(), std::string::npos) != std::string(last_price.size() - price.size(), '9')){ res += last_price.size() - price.size(); price.append(last_price.substr(price.size(), std::string::npos)); std::string::reverse_iterator i; for(i=price.rbegin(); *i == '9'; ++i) { *i = '0'; } char c = *i; *i = c+1; } else { res += last_price.size() - price.size()+1; price.append(std::string(last_price.size() - price.size()+1, '0')); } last_price = price; } std::cout << res << std::endl; return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | #include <iostream> #include <string> int main() { int number_of_games; std::string price; std::string price1; std::string last_price; long long res=0; std::cin >> number_of_games; while(number_of_games--) { std::cin >> price; if(last_price.size() < price.size() || (last_price.size() == price.size() && last_price < price)) { // do nothing } else if(last_price.size() == price.size() && last_price >= price) { price.push_back('0'); res++; } else if(last_price.substr(0, price.size()) < price) { res += last_price.size() - price.size(); price.append(std::string(last_price.size() - price.size(), '0')); } else if(last_price.substr(0, price.size()) == price && last_price.substr(price.size(), std::string::npos) != std::string(last_price.size() - price.size(), '9')){ res += last_price.size() - price.size(); price.append(last_price.substr(price.size(), std::string::npos)); std::string::reverse_iterator i; for(i=price.rbegin(); *i == '9'; ++i) { *i = '0'; } char c = *i; *i = c+1; } else { res += last_price.size() - price.size()+1; price.append(std::string(last_price.size() - price.size()+1, '0')); } last_price = price; } std::cout << res << std::endl; return 0; } |