結果

問題 No.509 塗りつぶしツール
ユーザー tottoripaper
提出日時 2017-04-28 22:42:28
言語 C++11(廃止可能性あり)
(gcc 13.3.0)
結果
WA  
実行時間 -
コード長 805 bytes
コンパイル時間 1,280 ms
コンパイル使用メモリ 160,408 KB
実行使用メモリ 6,948 KB
最終ジャッジ日時 2024-09-13 18:11:22
合計ジャッジ時間 2,222 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 12 WA * 15
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>

using namespace std;

#define fst(t) std::get<0>(t)
#define snd(t) std::get<1>(t)
#define thd(t) std::get<2>(t)

using ll = long long;
using P = std::tuple<int,int>;

const int dx[8] = {-1, 1, 0, 0, -1, -1, 1, 1}, dy[8] = {0, 0, -1, 1, -1, 1, -1, 1};

// 4: 1, 6: 1, 8: 2, 9: 1
int f(int n){
    if(n == 0 || n == 4 || n == 6 || n == 9){
        return 1;
    }else if(n == 8){
        return 2;
    }
    return 0;
}

int main(){
    std::cin.tie(nullptr);
    std::ios::sync_with_stdio(false);

    string S;
    std::cin >> S;

    int res = (int)S.size() * 2 + 1;
    bool flag = true;
    for(char &c : S){
        int x = c - '0';
        res += f(x);
        flag &= f(x) == 0;
    }

    if(flag){res = min(res, (int)S.size() + 2);}

    std::cout << res << std::endl;
}
0