Codeforces Round #383 (Div. 2) A. Arpa’s hard exam and Mehrdad’s naive cheat

問題

Problem - A - Codeforces

考察

 1378^{n}というトンデモ数字が出てきて面食らいますが、 結局一番下の桁だけが必要なことに着目します。

...8 * ...8 * ...8 という繰り返しなので、最後の桁はn=1で8、n=2で88=64なので4、n=3で84=32なので2、n=4で6、n=5で8...となって循環します。

というわけで、n mod 4を取って対応するものを出力すれば良いです。

が、底意地の悪いことにn=0もケースに入っているので、この時だけ1を出してあげないとHackされます。

コード

int main() {
    int n;
    cin >> n;
    if(n == 0) {
        cout << 1 << endl;
        return 0;
    }

    int t = n % 4;
    int res = 0;
    if(t == 1)
        res = 8;
    else if(t == 2)
        res = 4;
    else if(t == 3)
        res = 2;
    else
        res = 6;

    cout << res << endl;

    return 0;
}

感想

A問題は制約を読み飛ばしちゃいますよね。