2020年02月29日15時47分58秒に更新されたバージョンを表示しています.
最新のページはこちらをご覧ください.


Codeforces Round #602 DIV1 C問題/DIV2 E問題 - Arson In Berland Forest

Source

Codeforces Round #602 DIV1 C問題 (1500pt)
Codeforces Round #602 DIV2 E問題 (2500pt)
Technocup 2020 - Elimination Round 3 E問題 (2500pt)
Problem description

問題概要

省略

解法

省略

cLayversion 20200227-1)のコード

C++に変換後のコードはこちら

//no-unlocked
int X, Y;
char C;
Grid2d<int> S, T;
char **mp;
{
  int x, mx, k, ok;

  rd(X,Y);
  S.malloc(X,Y);
  T.malloc(X,Y);
  rep(i,X) rep(j,Y){
    rd(C);
    S[i][j] = if[C=='X', 1, 0];
  }
  S.setSum();

  walloc2d(&mp, X, Y+2);
  rep(i,X) mp[i][Y] = '\0';

  mx = (min(X,Y)-1)/2;
  x = bsearch_max[int,x,0,mx][
    rep(i,X) rep(j,Y){
      k = S.getSum(max(0,i-x),max(0,j-x),min(X-1,i+x),min(Y-1,j+x));
      T[i][j] = if[k==((2*x+1)**2), 1, 0];
    }
    ok = 1;
    T.setSum();
    rep(i,X) rep(j,Y){
      k = T.getSum(max(0,i-x),max(0,j-x),min(X-1,i+x),min(Y-1,j+x));
      k <?= 1;
      if(S[i][j] != k) ok = 0, break_break;
    }
  ](ok);

  rep(i,X) rep(j,Y){
    k = S.getSum(max(0,i-x),max(0,j-x),min(X-1,i+x),min(Y-1,j+x));
    mp[i][j] = if[k==((2*x+1)**2), 'X', '.'];
  }

  wt(x);
  rep(i,X) wt(mp[i]);
}

Current time: 2021年11月29日17時20分47秒
Last modified: 2020年02月29日15時47分58秒 (by laycrs)
Tags: Competitive_Programming_Incomplete Codeforces CF602 CF_Div1_C CF_Div2_E
トップページに戻る

Logged in as: unknown user (not login)

ログイン: