競技プログラミング日記

主に AtCoder の記事です

第三回 アルゴリズム実技検定 D問題

 

PAST003D

出力1をコピーすれば, \(0, \cdots, 9\) に対応するchar たちが分かる.

使っている記号,マクロ等 "https://ecsmtlir.hatenablog.com/entry/2022/12/23/131925"

int main() {

  vector<string> t = {
    ".###..#..###.###.#.#.###.###.###.###.###.",
    ".#.#.##....#...#.#.#.#...#.....#.#.#.#.#.",
    ".#.#..#..###.###.###.###.###...#.###.###.",
    ".#.#..#..#.....#...#...#.#.#...#.#.#...#.",
    ".###.###.###.###...#.###.###...#.###.###."
  };
  ll n; cin >> n;
  vector<string> s(5);
  cinv(s);

  vll v;
  rep(i,n){
    rep(x,10){
      bool f = true;
      rep(k,4) rep(j,5){
        if(s[j][4*i+k] != t[j][4*x+k]) f = false;
      }
      if(f) v.push_back(x);
    }
  }

  assert(v.size() == n);
  rep(i,v.size()){
    cout << v[i] ;
  }

  return 0;
}