結果

問題 No.3402 [Cherry Anniversary 5] Beyond Zelkova, the 5th year vista seen through the bloom of a cherry bloosom
コンテスト
ユーザー wym
提出日時 2025-12-09 00:14:37
言語 C++14
(gcc 13.3.0 + boost 1.89.0)
結果
AC  
実行時間 10 ms / 2,000 ms
コード長 1,692 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 1,721 ms
コンパイル使用メモリ 163,272 KB
実行使用メモリ 7,852 KB
最終ジャッジ日時 2025-12-09 00:14:41
合計ジャッジ時間 2,809 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 24
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int, int>;

void add(int &y, int &m, int &d)
{
	const int days[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
	auto is_leap = [](int y) -> bool
	{
		return y % 4 == 0 && (y % 100 != 0 || y % 400 == 0);
	};

	if(is_leap(y) && m == 2 && d == 28)
	{
		d++;
		return ;
	}

	d++;
	if(days[m] < d)
		d = 1, m++;
	if(m == 13)
		m = 1, y++;
}

// if 1 < 2
bool les(int y1, int m1, int d1, int y2, int m2, int d2)
{
	if(y1 > y2)	return false;
	if(y1 < y2)	return true;
	if(m1 > m2)	return false;
	if(m1 < m2)	return true;
	return d1 < d2;
}

bool equ(int y1, int m1, int d1, int y2, int m2, int d2)
{
	return y1 == y2 && m1 == m2 && d1 == d2;
}

void solve()
{
	int ys, ms, ds;
	int ye, me, de;
	cin >> ys >> ms >> ds >> ye >> me >> de;
	int active = 0;
	while(ys != ye || ms != me || ds != de)
		active++, add(ys, ms, ds);

	int yg = ye, mg = me, dg = de;
	add(yg, mg, dg);
	for(int i=0; i<active; i++)
		add(yg, mg, dg);

	int q;
	cin >> q;
	while(q--)
	{
		int y, m, d;
		cin >> y >> m >> d;
		if(les(y, m, d, yg, mg, dg))	cout << "Less\n";
		else if(equ(y, m, d, yg, mg, dg))	cout << "Same\n";
		else	cout << "More\n";
	}
}

signed main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);

	int t = 1;
	// cin >> t;
	while(t--)
		solve();
}

// #pragma GCC optimize("O3,unroll-loops")
// #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
// #pragma GCC optimize("trapv")
// mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
// shuffle(a.begin(), a.end(), rng);
// uniform_int_distribution<long long>(l, r)(rng); // [l, r]
// freopen(".in", "r", stdin);
// freopen(".out", "w", stdout);
0