求助
  • 板块学术版
  • 楼主Gaochenxi103_QWQ
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/12/28 17:25
  • 上次更新2023/10/24 06:18:41
查看原帖
求助
717476
Gaochenxi103_QWQ楼主2022/12/28 17:25
#include<bits/stdc++.h>
using namespace std;
int y_s,m_s,d_s,h_s,min_s,y_l,m_l,d_l,h_l,min_l;
int ti;
int m=0;
int ti_time[5001];
int lepa_hs()
{
    int lepa=0;
    for(int i=y_s;i<=y_l;i++) 
    {
        if(((i%100==0 and i%400==0) or (i%100!=0 and i%4==0)))
        {
            lepa++;
            if(i==y_s)
            {
                if(!(((m_s==2 and m_l>=2)or(m_s<2 and m_l>=2))&&d_s<=29) and (d_s!=d_l))
                {
                    lepa--;
                }
            }
        }
    }
    return lepa;
}
int m_hs(int lepa)
{
    int day=0;
    day+=(y_l-y_s)*365;
    for(int i=m_s;i<m_l;i++) 
    {
        if(i==3||i==5||i==7||i==8||i==10||i==12) 
        {
            day+=31;
        }
        else 
        {
            if(i!=2)
            {
                day+=30;
            }
            else 
            {
                day+=28;
            }
        } 
    }
    day+=(d_l-d_s+lepa);
    m=day*24*60;
    m+=min_l-min_s;
    m+=(h_l-h_s)*60;
    return m;
}
int ans_hs(int min)
{
    int ans=0;
    for(int i=0;i<ti;i++)
    {
        if(min>=ti_time[i])
        {
            ans++;
            min-=ti_time[i];
        }
        else
        {
            break;
        }
    }
    return ans;
}
int main()
{
    
    cin>>ti;
    for(int i=0;i<ti;i++) cin>>ti_time[i];
    scanf("%d-%d-%d-%d:%d",&y_s,&m_s,&d_s,&h_s,&min_s);
    scanf("%d-%d-%d-%d:%d",&y_l,&m_l,&d_l,&h_l,&min_l);
    cout<<ans_hs(m_hs(lepa_hs()));
    return 0;
}

P1167 刷题这道题目,样例过了但只有30分求各位大佬指点,QAQ。本人已经被这道题目折磨了好久了

2022/12/28 17:25
加载中...