建议改一下题

P1167 刷题

蒟酱 @ 2022-01-09 23:37:57

首先 cu ball 这个帖子
其次 应该声明不考虑0000年是否是闰年 否则这就是产生误会


by 蒟酱 @ 2022-01-09 23:49:16

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#define int long long
using namespace std;
struct Time
{
    int year,month,day,hour,minute;
}x,y;
int a[10007];
inline int sl(Time t)
{
    for(int i=0;i<=t.year-1;i++)
        t.day+=365+(((t.year%4==0&&t.year%100!=0)||t.year%400==0)?1:0);
    if(t.month>2)
        t.day+=(((t.year%4==0&&t.year%100!=0)||t.year%400==0)?1:0);
    if(t.month>1)
        t.day+=31;
    if(t.month>2)
        t.day+=28;
    if(t.month>3)
        t.day+=31;
    if(t.month>4)
        t.day+=30;
    if(t.month>5)
        t.day+=31;
    if(t.month>6)
        t.day+=30;
    if(t.month>7)
        t.day+=31;
    if(t.month>8)
        t.day+=31;
    if(t.month>9)
        t.day+=30;
    if(t.month>10)
        t.day+=31;
    if(t.month>11)
        t.day+=30;
    if(t.month>12)
        t.day+=31;
    return t.day*24*60+t.hour*60+t.minute;
}
signed main()
{
//  freopen(".in","r",stdin);
//  freopen(".out","w",stdout);
    int i,j,k;
    int n,m,t;
    int ans=0;

    cin>>n;
    for(i=1;i<=n;i++)
        cin>>a[i];
    scanf("%lld-%lld-%lld-%lld:%lld",&x.year,&x.month,&x.day,&x.hour,&x.minute);
    scanf("%lld-%lld-%lld-%lld:%lld",&y.year,&y.month,&y.day,&y.hour,&y.minute);
    m=sl(y)-sl(x);
    sort(a+1,a+1+n);
    for(i=1;i<=n;i++)
    {
        if(m<=0)
            break;
        ans++;
        m-=a[i];
    }
    cout<<ans;

    return 0;
}

同时60分求助


by 蒟酱 @ 2022-02-03 18:19:49

已解决
但是应该声明不考虑0000年是否是闰年 否则这就是产生误会


|