Thứ Năm, 10 tháng 1, 2019

UVa 11309 - Counting Chaos (palindrome check)

Link: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=25&page=show_problem&problem=2284
Sol:
#include <iostream>
#include <string>
using namespace std;
void Tick(string& number)
{
number[3] += 1;
if (number[3] > '9')
{
number[3] = '0';
number[2] += 1;
if (number[2] == '6')
{
number[2] = '0';
number[1] += 1;
if (number[1] > '9' || (number[0] == '2' && number[1] == '4'))
{
number[1] = '0';
number[0] += 1;
if (number[0] == '3')
{
number[0] = '0';
}
}
}
}
}
bool IsPalindrome(const string& number)
{
int start = 0, end = 3;
while (number[start] == '0')
++start;
while (start < end)
{
if (number[start++] != number[end--])
return false;
}
return true;
}
int main()
{
int T;
cin >> T;
string number;
while (T--)
{
cin >> number;
number.erase(2, 1);
Tick(number);
while (!IsPalindrome(number))
Tick(number);
cout << number[0] << number[1] << ':' << number[2] << number[3] << '\n';
}
}

Không có nhận xét nào:

Đăng nhận xét

Bài G - Educatioal Round 62

Đề bài: Bạn được cho 1 đồ thị vô hướng đặc biệt. Nó bao gồm $2n$ đỉnh được đánh số từ 1 đến 2n. Dưới đây là một số đặc tính của đồ thị: + ...