Submission #219352

#TimeUsernameProblemLanguageResultExecution timeMemory
219352kartelDatum (COCI20_datum)C++14
50 / 50
699 ms736 KiB
#include <bits/stdc++.h> //#include <ext/pb_ds/assoc_container.hpp> //#include <ext/pb_ds/tree_policy.hpp> #define in(x) freopen(x, "r", stdin) #define out(x) freopen(x, "w", stdout) #pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-loops") #pragma GCC optimize("-O3") #define F first #define S second #define pb push_back #define N +400500 //#define M ll(1e9 + 7) #define sz(x) (int)x.size() #define re return #define oo ll(1e18) #define el '\n' using namespace std; //using namespace __gnu_pbds; //typedef tree <int, null_type, less_equal <int> , rb_tree_tag, tree_order_statistics_node_update> ordered_set; typedef long long ll; typedef long double ld; string da, ma, ya; int ds, ys, ms, Y, M, D; string y, d, m; bool gd(int Y) { y = to_string(Y); while (y.size() < 4) y = "0" + y; d[0] = y[3]; d[1] = y[2]; m[0] = y[1]; m[1] = y[0]; M = atoi(m.c_str()); D = atoi(d.c_str()); if (M > 12 || D > 31) return 0; if (D == 0 || M == 0) return 0; if (Y == ys && M < ms) return 0; if (Y == ys && M == ms && D <= ds) return 0; if (m == "01" && D <= 31) return 1; if (m == "02" && D <= 28 + ((Y % 2 == 0)?1:0)) return 1; if (m == "03" && D <= 31) return 1; if (m == "04" && D <= 30) return 1; if (m == "05" && D <= 31) return 1; if (m == "06" && D <= 30) return 1; if (m == "07" && D <= 31) return 1; if (m == "08" && D <= 31) return 1; if (m == "09" && D <= 30) return 1; if (m == "10" && D <= 31) return 1; if (m == "11" && D <= 30) return 1; if (m == "12" && D <= 31) return 1; return 0; } int main() { srand(time(0)); ios_base::sync_with_stdio(0); iostream::sync_with_stdio(0); ios::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL); // in("input.txt"); // out("output.txt"); int q; string s, t; cin >> q; d = "00"; m = "00"; // cout << el; while (q--) { cin >> s; t = s; t.erase(t.size() - 1); t.erase(2, 1); t.erase(4, 1); ms = atoi(t.substr(2, 2).c_str()); ds = atoi(t.substr(0, 2).c_str()); ys = atoi(t.substr(4).c_str()); Y = ys; while (!gd(Y)) Y++; y = to_string(Y); while (y.size() < 4) y = "0" + y; d[0] = y[3]; d[1] = y[2]; m[0] = y[1]; m[1] = y[0]; cout << d << "." << m << "." << y << "." << el; } }
#Verdict Execution timeMemoryGrader output
Fetching results...