LoginSignup
0
0

毎日ABC day22【c++】ABC326 A-C問題解説【ACコード付き】

Posted at

AtCoder Beginner Contest 325

A - Takahashi san

苗字と名前がそれぞれ与えられるので、" san"をつけて出力する。

int main()
{
	string S, T;
	cin >> S >> T;
	cout << S << " san" << endl;
	return 0;
}

B - World Meeting

世界 $N$ 拠点の人数と、標準時間からのズレが与えられる。9時から18時に完全に収まるように1時間のMTGを開くとき、最大の参加人数は何人になるか、という問題。

開始時間の選択肢は0時から23時までの24パターンしかないので、それぞれの時間における参加可能人数を求めて、最大の場合を出力する。

int main()
{
	int N;
	cin >> N;
	vector<int> num_member(N);
	vector<int> time_kyoten(N);
	for (int i = 0; i < N; i++) cin >> num_member[i] >> time_kyoten[i];
	// それぞれの時間で参加可能な人数を求める
	int max_num = 0;
	for (int k = 0; k < 24; k++)
	{
		int tmp = 0;
		for (int i = 0; i < N; i++)
		{
			int tmp_time = (time_kyoten[i] + k) % 24;
			if (tmp_time >= 9 && tmp_time < 18) tmp += num_member[i];
		}
		max_num = max(max_num, tmp);
	}
	cout << max_num << endl;
	return 0;
}

C - Sensors

再帰関数で繋がっている領域を全てチェックし、繋がっていない場所の個数をカウントする。

int H, W;
bool board[1009][1009];

void ft_check(int x, int y)
{
    board[x][y] = false;
    for (int i = -1; i <= 1; i++)
    {
        for (int j = -1; j <= 1; j++)
        {
            int nx = x + i;
            int ny = y + j;
            if (nx >= 0 && nx < H && ny >= 0 && ny < W && board[nx][ny])
            {
                ft_check(nx, ny);
            }
        }
    }
}

int main()
{
    cin >> H >> W;
    vector<string> S(H);
    for (int i = 0; i < H; i++) cin >> S[i];
    // 盤面の整理
    for (int i = 0; i < H; i++)
    {
        for (int j = 0; j < W; j++)
        {
            if (S[i][j] == '#') board[i][j] = true;
            else board[i][j] = false;
        }
    }
    // センサの単位がいくつあるかチェック
    int ans = 0;
    for (int i = 0; i < H; i++)
    {
        for (int j = 0; j < W; j++)
        {
            if (board[i][j])
            {
                ans++;
                ft_check(i, j);
            }
        }
    }
    cout << ans << endl;
    return 0;
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0