Submission #291707

#TimeUsernameProblemLanguageResultExecution timeMemory
291707penguinhackerDatum (COCI20_datum)C++14
50 / 50
7 ms640 KiB
#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define ar array

const int d[13]={-1, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
vector<ar<int, 3>> dates; //year, month, day

string filler(int x, int d) {
	int digs=0;
	while(x>0) ++digs, x/=10;
	return string(d-digs, '0');
}

string To_string(int x) {
	string res;
	while(x>0) res.push_back(x%10+'0'), x/=10;
	reverse(res.begin(), res.end());
	return res;
}

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	for (int i=0; i<10000; ++i) {
		int month=i/100; month=month%10*10+month/10;
		int day=i%100; day=day%10*10+day/10;
		if (month<1||month>12) continue;
		int bound=d[month];
		if (month==2&&i%4==0) ++bound;
		if (day==0||day>bound) continue;
		dates.push_back({i, month, day});
		//cout << i << "\n";
	}
	int n;
	cin >> n;
	for (int i=0; i<n; ++i) {
		string s; cin >> s;
		int day=atoi(s.substr(0, 2).c_str());
		int month=atoi(s.substr(3, 2).c_str());
		int year=atoi(s.substr(6, 4).c_str());
		int pos=upper_bound(dates.begin(), dates.end(), ar<int, 3>{year, month, day})-dates.begin();
		assert(pos<dates.size());
		ar<int, 3> cur=dates[pos];
		string ans1=filler(cur[2], 2)+To_string(cur[2]);
		string ans2=filler(cur[1], 2)+To_string(cur[1]);
		string ans3=filler(cur[0], 4)+To_string(cur[0]);
		cout << ans1 << "." << ans2 << "." << ans3 << ".\n";
	}
	return 0;
}

Compilation message (stderr)

In file included from /usr/include/c++/9/cassert:44,
                 from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:33,
                 from datum.cpp:1:
datum.cpp: In function 'int main()':
datum.cpp:45:13: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::array<int, 3> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   45 |   assert(pos<dates.size());
      |          ~~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...