競技プログラミング日記

主に AtCoder の記事です

AtCoder Beginner Contest 305C

ABC305C

角が欠けているときだけ注意.

もとの長方形の大きさが,1辺が2以上であることにも注意すると, もとの長方形の辺にあたる部分が特定できる. 言い換えると, 一番小さい行, 一番大きい行, 一番小さい列, 一番大きい列 の番号が手に入る.

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

int main() {
  ll h,w; cin >> h >> w;
  vector<string> s(h); cinv(s);

  ll a,b,c,d;
  a = b = INFL;
  c = d = -INFL;
  rep(x,h) rep(y,w){
    if(s[x][y] == '#'){
      chmin(a, x);
      chmin(b, y);

      chmax(c, x);
      chmax(d, y);
    }
  }

  srep(x,a,c+1) srep(y,b,d+1){
    if(s[x][y] == '.'){
      cout << x+1 << " " << y+1 << endl;
      return 0;
    }
  }
  assert(false);

  return 0;
}