Submission #845782

# Submission time Handle Problem Language Result Execution time Memory
845782 2023-09-06T15:31:03 Z vjudge1 Datum (COCI20_datum) C++17
40 / 50
1000 ms 432 KB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl "\n"
#define all(c) (c).begin(), (c).end()

bool f(string &ck){
	int n = ck.size(),ok = 1;
	for(int i = 0; i < n / 2 + 1; i++){
		if(ck[i] != ck[n - i - 1]){
			return false;
		}
	}
	return true;
}

void solve(){	

	string s;
	cin >> s;

	while(37){
		int d,m,y;
		d = (s[0] - '0') * 10 + s[1] - '0';
		m = (s[3] - '0') * 10 + s[4] - '0';
		y = (s[6] - '0') * 1000 + (s[7] - '0') * 100 + (s[8] - '0') * 10 + s[9] - '0';

		int ok = 0;
		while(y % 10 > 3) y++,ok = 1;
			
		if(ok){
			d = 1,m = 1;
		}

		if(m == 2){
			if(y % 4 == 0){
				if(d == 29){
					d = 1;
					m++;
				}
				else d++;
			}
			else{
				if(d == 28){
					d = 1;
					m++;
				}
				else d++;
			}	
		}
		else{
			if((m % 2 && m <= 7) || (m % 2 == 0 && m > 7)){
				if(d == 31){
					d = 1;
					if(m == 12){
						m = 1;
						y++;
					}
					else m++;
				}
				else d++;
			}
			else{
				if(d == 30){
					d = 1;
					if(m == 12){
						m = 1;
						y++;
					}
					else m++;
				}
				else d++;	
			}
		}


		string dd;
		if(d < 10) dd = '0' + to_string(d);
		else dd = to_string(d);

		string mm;
		if(m < 10) mm = '0' + to_string(m);
		else mm = to_string(m);

		string yy;
		if(y < 10) yy = string("0",3) + to_string(y);
		else if(y < 100) yy = string("0",2) + to_string(y);
		else if(y < 1000) yy = string("0",1) + to_string(y);
		else yy = to_string(y);

		string ck = dd + mm + yy;
		string fuck = ck.substr(0,2) + '.' + ck.substr(2,2) + '.' + ck.substr(4,4) + '.';
		if(f(ck)){
			cout << fuck << endl;
			return;
		}
		s = fuck;
	}
}

signed main(){

	cin.tie(0);
	ios_base::sync_with_stdio(0);

	#ifndef ONLINE_JUDGE
		//	freopen("in.txt","r",stdin); freopen("out.txt","w",stdout);
	#endif

	ios_base::sync_with_stdio(0);
	cin.tie(0);

	int t = 1;
	cin >> t;

	while(t--){
		solve();
	}

	return 0;
}

Compilation message

datum.cpp: In function 'bool f(std::string&)':
datum.cpp:8:20: warning: unused variable 'ok' [-Wunused-variable]
    8 |  int n = ck.size(),ok = 1;
      |                    ^~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Execution timed out 1085 ms 348 KB Time limit exceeded
3 Correct 1 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 114 ms 432 KB Output is correct
7 Correct 94 ms 344 KB Output is correct
8 Correct 98 ms 348 KB Output is correct
9 Correct 105 ms 424 KB Output is correct
10 Execution timed out 1032 ms 344 KB Time limit exceeded