結果

問題 No.509 塗りつぶしツール
ユーザー tottoripapertottoripaper
提出日時 2017-04-28 23:01:49
言語 C++11
(gcc 13.3.0)
結果
AC  
実行時間 2 ms / 2,000 ms
コード長 775 bytes
コンパイル時間 1,545 ms
コンパイル使用メモリ 160,556 KB
実行使用メモリ 6,944 KB
最終ジャッジ日時 2024-09-13 18:28:42
合計ジャッジ時間 2,219 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 27
権限があれば一括ダウンロードができます

ソースコード

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 n = S.size();

    int hole = 0;
    for(char &c : S){
        int x = c - '0';
        hole += f(x);
    }
    
    int res = min(2 * (1 + hole) + n, 2 * n + (1 + hole));

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