Submission #998976

#TimeUsernameProblemLanguageResultExecution timeMemory
998976vjudge1Datum (COCI20_datum)C++17
50 / 50
349 ms444 KiB
#include<bits/stdc++.h> using namespace std; bool check(string s) { int m[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; if(stoi(s) % 4 == 0) m[1] = 29; string MM; MM += s[1], MM += s[0]; if(stoi(MM) <= 0 || stoi(MM) > 12) return false; int idx = stoi(MM) - 1; string DD; DD += s[3], DD += s[2]; if(stoi(DD) <= 0 || stoi(DD) > m[idx]) return false; return true; } bool compare(string a, string b) { if(a.substr(3, 2) != b.substr(3, 2)) return a.substr(3, 2) < b.substr(3, 2); return a.substr(0, 2) < b.substr(0, 2); } void solve() { string date; cin >> date; string Y = date.substr(6, 4); string ans; ans += Y[3], ans += Y[2], ans += '.', ans += Y[1], ans += Y[0], ans += '.'; ans += Y, ans += '.'; if(check(Y) && compare(date, ans)) { cout << Y[3] << Y[2] << '.' << Y[1] << Y[0] << '.' << Y << ".\n"; return; } while(true) { int s = stoi(Y) + 1; Y = to_string(s); while(Y.size() < 4) Y = '0' + Y; if(check(Y)) break; } cout << Y[3] << Y[2] << '.' << Y[1] << Y[0] << '.' << Y << ".\n"; } int main() { int t; cin >> t; while(t--) solve(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...