https://onlinejudge.u-aizu.ac.jp/challenges/sources/JAG/Prelim/2881
解法
https://onlinejudge.u-aizu.ac.jp/solutions/problem/2881/review/2994204/hamayanhamayan/C++14
場合分けをする。
yが31より大きい場合は改元している。
yが31のときはmが4より大きい場合に改元している。
他は全て改元していない。
string g; int y, m, d; //--------------------------------------------------------------------------------------------------- void _main() { while (cin >> g) { if (g == "#") return; cin >> y >> m >> d; if (31 < y) { g = "?"; y -= 30; } else if (y == 31) { if (4 < m) { g = "?"; y -= 30; } } printf("%s %d %d %d\n", g.c_str(), y, m, d); } }