Submission #219331

#TimeUsernameProblemLanguageResultExecution timeMemory
219331kartelDatum (COCI20_datum)C++14
40 / 50
949 ms648 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; 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("qual.in"); // out("qual.out"); int q; cin >> q; while (q--) { string s, t, m, y, d; int i, j, Y, D, M, M1; cin >> s; t = s; t.erase(t.size() - 1); t.erase(2, 1); t.erase(4, 1); M1 = atoi(t.substr(2, 2).c_str()); j = 0; while (j < t.size() - j - 1) t[j] = t[t.size() - j - 1], j++; m = t.substr(2, 2); d = t.substr(0, 2); y = t.substr(4); Y = atoi(y.c_str()); D = atoi(d.c_str()); M = atoi(m.c_str()); if (D > 0 && M >= M1) { if (m == "01" && D <= 31) {cout << d << "." << m << "." << y << "." << el;continue;}; if ((m == "02" && D <= 28) || (Y % 4 == 0 && m == "02" && D <= 29)) {cout << d << "." << m << "." << y << "." << el;continue;}; if (m == "03" && D <= 31) {cout << d << "." << m << "." << y << "." << el;continue;}; if (m == "04" && D <= 30) {cout << d << "." << m << "." << y << "." << el;continue;}; if (m == "05" && D <= 31) {cout << d << "." << m << "." << y << "." << el;continue;}; if (m == "06" && D <= 30) {cout << d << "." << m << "." << y << "." << el;continue;}; if (m == "07" && D <= 31) {cout << d << "." << m << "." << y << "." << el;continue;}; if (m == "08" && D <= 31) {cout << d << "." << m << "." << y << "." << el;continue;}; if (m == "09" && D <= 30) {cout << d << "." << m << "." << y << "." << el;continue;}; if (m == "10" && D <= 31) {cout << d << "." << m << "." << y << "." << el;continue;}; if (m == "11" && D <= 30) {cout << d << "." << m << "." << y << "." << el;continue;}; if (m == "12" && D <= 31) {cout << d << "." << m << "." << y << "." << el;continue;}; } for (i = 0; i < 3000; i++) { j = t.size() - 1; while (t[j] == '9') t[j] = '0', j--; t[j]++; j = 0; while (j < t.size() - j - 1) t[j] = t[t.size() - j - 1], j++; m = t.substr(2, 2); d = t.substr(0, 2); y = t.substr(4); Y = atoi(y.c_str()); D = atoi(d.c_str()); if (D == 0) continue; if (m == "01" && D <= 31) break; if ((m == "02" && D <= 28) || (Y % 4 == 0 && m == "02" && D <= 29)) break; if (m == "03" && D <= 31) break; if (m == "04" && D <= 30) break; if (m == "05" && D <= 31) break; if (m == "06" && D <= 30) break; if (m == "07" && D <= 31) break; if (m == "08" && D <= 31) break; if (m == "09" && D <= 30) break; if (m == "10" && D <= 31) break; if (m == "11" && D <= 30) break; if (m == "12" && D <= 31) break; } cout << d << "." << m << "." << y << "." << el; } }

Compilation message (stderr)

datum.cpp: In function 'int main()':
datum.cpp:49:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         while (j < t.size() - j - 1) t[j] = t[t.size() - j - 1], j++;
                ~~^~~~~~~~~~~~~~~~~~
datum.cpp:82:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             while (j < t.size() - j - 1) t[j] = t[t.size() - j - 1], j++;
                    ~~^~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...