競技プログラミング日記

主に AtCoder の記事です

AtCoder Beginner Contest 309B

ABC309B

実装
配る形が楽だった.貰うでも実装は可能だが,何となく配る法が自然に感じた.
試験本番では,実装が面倒で一旦飛ばして戻ってきたら, すんなり書けた. 躓いたり時間がかかると感じたら,試験では一旦飛ばすのは有効.

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

int main() {
  ll n, m ;
  cin >> n;
  vector<string> s(n);
  cinv(s);

  vector<string> t(n);
  rep(i,n) t[i].resize(n);
 
  rep(x,n) rep(y,n){
    if(x == 0){
      if(y != n-1) t[x][y+1] = s[x][y];
      else t[x+1][n-1] = s[x][n-1];
    }
    else if(x == n-1){
      if(y != 0) t[x][y-1] = s[x][y];
      else    t[x-1][0] = s[x][0];
    }
    else if(y == 0){
      t[x-1][y] = s[x][y];
    }else if(y == n-1){
      t[x+1][y] = s[x][y];
    }else {
      t[x][y] = s[x][y];
    }

  }

  rep(x,n) {rep(y,n){
    cout << t[x][y];
  }cout << endl;}

  return 0;
}