はまやんはまやんはまやん

hamayanhamayan's blog

tv_program [Kodamanと愉快な仲間たち D]

https://www.hackerrank.com/contests/kodamanwithothers/challenges/tv-program

解説

https://www.hackerrank.com/contests/kodamanwithothers/challenges/tv-program/submissions/code/1316475865

とりあえず、Dが平日か週末かで場合分けしよう。 与えられている時間の比較をするときは、24hで考えて、全て分に直すのがおすすめ。 つまり、hh:mmであれば、hh*60+mmとすれば単純な比較に落とすことができる。

int D, Sh, Sm, Th, Tm;
//---------------------------------------------------------------------------------------------------
#define yes "Yay!"
#define no ":("
string solve() {
    int L = Sh * 60 + Sm;
    int R = Th * 60 + Tm;

    if (D <= 5) { // weekday
        if (19*60 <= L and R <= 22*60) return yes;
        return no;
    } else { // weekend
        if (7*60 <= L and R <= 22*60) return yes;
        return no;
    }
}
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> D >> Sh >> Sm >> Th >> Tm;
    cout << solve() << endl;
}