你已经爱我多久了

2008 你已经爱我多久了

 

2013年省队选拔赛辽宁

 时间限制: 1 s
 空间限制: 128000 KB
 题目等级 : 白银 Silver
 
 
 
题目描述 Description

小A和小B是一对情侣,并且他们都喜欢数学。向其他恋爱中的女孩一样,小B总是喜欢问小A一些奇怪的问题。 今天,小B问小A:“你已经爱我多久了。”并要他马上回答。小A将会给他一个数字(小A已经爱小B多少秒了。)你能帮助小B计算现在的时间吗?

输入描述 Input Description

第一行有如下的一个时间“YYYY/MM/DD hh:mm:ss”(小A和小B在一起的开始时间)和小A给小B的时间T。(所有的输入时间都在2000年以后)

输出描述 Output Description

以下面的格式输出现在的时间 "YYYY/MM/DD hh:mm:ss"。

样例输入 Sample Input

2000/12/31 23:59:59 3

样例输出 Sample Output

2001/01/01 00:00:02

数据范围及提示 Data Size & Hint

60%的数据中0<=T<=5*10^6;

100%的数据中0<=T<=10^12;

#include<iostream>
#include<cstdio>
using namespace std;
long long a,b,c,d,e,f,x;
char o,p,r,s;
int mouth1[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
int mouth2[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int main()
{
    cin>>a>>o>>b>>p>>c>>d>>r>>e>>s>>f>>x;
    f=f+x;
    if(f>=60)
    {
        e=e+f/60;
        f=f%60;
    }
    if(e>=60)
    {
        d=d+e/60;
        e=e%60;
    }
    if(d>=24)
    {
        c=c+d/24;
        d=d%24;
    }
    while(1)
    {
        int falg=0;
        if((a%4==0&&a%100!=0)||(a%400==0))
          {
              for(int i=b;i<=b+12;i++)
            {
                if(i==13)
                    a++;
                  if(c>mouth1[i%13])
                    c=c-mouth1[i%13];
                else 
                {
                    falg=1;
                    b=i%13;
                    break;
                }
            }
        }
        else
        {
              for(int i=b;i<=b+12;i++)
            {
                if(i==13)
                    a++;
                  if(c>mouth2[i%13])
                    c=c-mouth2[i%13];
                else 
                {
                    falg=1;
                    b=i%13;
                    break;
                }
            }
        }
        if(falg)
            break;
    }
    cout<<a<<o;
    if(b<10)
        cout<<"0"<<b<<p;
    else 
        cout<<b<<p;
    if(c<10)
        cout<<"0"<<c<<" ";
    else 
        cout<<c<<" ";
    if(d<10)
        cout<<"0"<<d<<r;
    else 
        cout<<d<<r;
    if(e<10)
        cout<<"0"<<e<<s;
    else 
        cout<<e<<s;
    if(f<10)
        cout<<"0"<<f;
    else 
        cout<<f;
    return 0;
}
原文地址:https://www.cnblogs.com/dxy1174868024/p/5540330.html