公式

A - 穴あきカード / Punched Card 解説 by physics0523


初心者の方へ


この問題の要求は以下の \(2\) 段階に大別できます。

  1. \(N \times M\) の # で埋まったカードを作る
  2. 指定された箇所に穴を空ける

1. については、長さ \(M\) の # のみからなる文字列を \(N\) 個配列として用意するなどの方法があります。これで、カードを二次元配列として表現することができます。
2. については、配列のうち当該の要素を . に置き換えていけばよいです。

一連の流れは、基本的な制御構文の組み合わせで実現可能です。

実装例 (C++):

#include<bits/stdc++.h>

using namespace std;

int main(){
  int N,M,K;
  cin >> N >> M >> K;
  vector<string> s(N);
  for(int i=0;i<N;i++){
    for(int j=0;j<M;j++){s[i].push_back('#');}
  }
  while(K--){
    int R,C;
    cin >> R >> C;
    s[R-1][C-1]='.';
  }
  for(auto &nx : s){
    cout << nx << "\n";
  }
  return 0;
}

投稿日時:
最終更新: