Submission #845063

#TimeUsernameProblemLanguageResultExecution timeMemory
845063vjudge1Datum (COCI20_datum)C++17
40 / 50
1033 ms600 KiB
#include <bits/stdc++.h> using namespace std; int main() { int t; cin >> t; auto tos = [&](int day, int month, int year) { string a = to_string(day); string b = to_string(month); string c = to_string(year); while (a.size() != 2) { a.insert(a.begin(), '0'); } while (b.size() != 2) { b.insert(b.begin(), '0'); } while (c.size() != 4) { c.insert(c.begin(), '0'); } return a + b + c; }; auto pal = [&](int day, int month, int year) { string d = tos(day, month, year); string e = d; reverse(e.begin(), e.end()); return d == e; }; vector<int> last = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; auto max_day = [&](int m, int year) { return last[m-1] + (m == 2 && year % 4 == 0); }; while (t--) { string date; cin >> date; int day = (date[0]-'0')*10 + (date[1]-'0'); int month = (date[3]-'0')*10 + (date[4]-'0'); int year = (date[6]-'0')*1000 + (date[7]-'0')*100 + (date[8]-'0') * 10 + (date[9]-'0'); do { day += 1; if (day > max_day(month, year)) { month += 1; day = 1; } if (month > 12) { year += 1; month = 1; } } while(!pal(day, month, year)); string ans = tos(day, month, year); ans.insert(ans.begin()+2, '.'); ans.insert(ans.begin()+5, '.'); ans.push_back('.'); cout << ans << '\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...