Submission
Status:
PPP--P----
Subtask/Task Score:
40/100
Score: 40
User: fluke
Problemset: Journey of Love
Language: cpp
Time: 0.002 second
Submitted On: 2025-10-05 15:07:43
#include <bits/stdc++.h>
#define ll long long
#define f first
#define s second
#define pii pair<int,int>
#define emb emplace_back
#define emf emplace_front
#define em emplace
#define all(x) x.begin(),x.end()
#define DB cout<<"\n";system("pause");
#define sp <<" "<<
#define inf (int)(1e9)
#define INF (ll)(1e18)
#define mod (ll)(1e9+7)
using namespace std;
struct date{
int year;
int month;
int day;
int hour;
int minute;
int second;
};
bool leapyear(int a){
if(a % 400 == 0)return true;
if(a % 100 == 0)return false;
if(a % 4 == 0)return true;
return false;
}
int q;
date start;
int main(){
ios::sync_with_stdio(false);cin.tie(0);
cin >> start.year >> start.month >> start.day >> start.hour >> start.minute >> start.second;
cin >> q;
bool leap_year_start = leapyear(start.year);
ll second_left = 0;
if(leap_year_start){
second_left += start.second;
second_left += start.minute*60;
second_left += start.hour*3600;
second_left += start.day*86400;
for(int i=1;i<start.month;i++){
if(i == 2)second_left += 2505600;
else if(i == 1 || i == 3 || i == 7 || i == 8 || i == 10 || i == 12)second_left += 2678400;
else second_left += 2592000;
}
}
else {
second_left += start.second;
second_left += start.minute*60;
second_left += start.hour*3600;
second_left += start.day*86400;
for(int i=1;i<start.month;i++){
if(i == 2)second_left += 2419200;
else if(i == 1 || i == 3 || i == 7 || i == 8 || i == 10 || i == 12)second_left += 2678400;
else second_left += 2592000;
}
}
while(q--){
int add;
cin>>add;
date ans;
ans.year = start.year;
add += second_left;
while(true){
bool leap_year = leapyear(ans.year);
if(leap_year){
if(add >= 31622400){
add -= 31622400;
ans.year ++ ;
}
else break;
}
else {
if(add >= 31536000){
add -= 31536000;
ans.year ++ ;
}
else break;
}
}
bool leap_yaer = leapyear(ans.year);
if(leap_yaer){
for(int i=1;i<=12;i++){
if(i == 2){
if(add >= 2505600)add -= 2505600;
else {
ans.month = i;
break;
}
}
else if(i == 1 || i == 3 || i == 7 || i == 8 || i == 10 || i == 12){
if(add >= 2678400)add -= 2678400;
else {
ans.month = i;
break;
}
}
else {
if(add >= 2592000)add -= 2592000;
else {
ans.month = i;
break;
}
}
}
}
else {
for(int i=1;i<=12;i++){
if(i == 2){
if(add >= 2419200)add -= 2419200;
else {
ans.month = i;
break;
}
}
else if(i == 1 || i == 3 || i == 7 || i == 8 || i == 10 || i == 12){
if(add >= 2678400)add -= 2678400;
else {
ans.month = i;
break;
}
}
else {
if(add >= 2592000)add -= 2592000;
else {
ans.month = i;
break;
}
}
}
}
ans.day = add/86400;
add = add%86400;
ans.hour = add/3600;
add = add%3600;
ans.minute = add/60;
ans.second = add%60;
cout<<ans.year sp ans.month sp ans.day sp ans.hour sp ans.minute sp ans.second <<"\n";
}
}
/*
1 minute = 60
1 hour = 3600
1 day = 86400
january(31) = 2678400 1
fabruary(28) = 2419200 2
fabruary(29) = 2505600 2
march(31) = 2678400 3
april(30) = 2592000 4
may(30) = 2592000 5
june(30) = 2592000 6
july(31) = 2678400 7
august(31) = 2678400 8
septemper(30) = 2592000 9
october(31) = 2678400 10
november(30) = 2592000 11
december(31) = 2678400 12
leap year 366 = 31622400
nomal yaer 365 = 31536000
*/