Birthday Boy Gym


Birthday Boy Gym


Birthday Boy Gym

模拟就完事了,细节很多

#include 
#include 
using namespace std;

int day[13] = {0, 0, 31, 59, 90, 120, 151, 181, 212, 242, 273, 303, 334};
int a[110];

int calc(int m, int d)
{
    return day[m] + d;
}

void print(int d)
{
    for(int i = 12; i; i--)
    {
        if(day[i] < d)
        {
            printf("%02d-%02d\n", i, d - day[i]);
            return;
        }
    }
    return;
}

int md(int x)
{
    x %= 365;
    if(!x)
    x = 365;
    return x;
}

int main()
{
    int n;
    cin >> n;
    for(int i = 0; i < n; i++)
    {
        int m, d;
        scanf("%*s %d-%d", &m, &d);
        a[i] = calc(m, d);
    }
    sort(a, a + n);
    int t = (a[0] - a[n - 1] + 365) % 365, ans = a[0], st = calc(10, 27);
    for(int i = 1; i < n; i++)
    {
        if(a[i] - a[i - 1] == t)
        {
            if(md(a[i] - st + 364) < md(ans - st + 364))
            ans = a[i];
        }
        if(a[i] - a[i - 1] > t)
        {
            t = a[i] - a[i - 1];
            ans = a[i];
        }
    }
    ans = md(--ans);
    print(ans);
    return 0;
}

相关