CF929B.Места в самолёте

普及-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

飞机上有 nn 排座位。从上方看,每排座位分布为:左侧有 33 个座位,然后是过道,然后是中间 44 个座位,再是另一个过道,最后是右侧 33 个座位。

已知部分座位已被乘客占用。乘客分为两类:常旅客(即经常乘坐飞机的乘客)和普通乘客。

你的任务是安排剩余的 kk 名普通乘客,使得所有常旅客的邻居总数尽可能少。若两名乘客在同一排且中间没有其他座位或过道,则他们互为邻居。如果一名乘客同时是两名常旅客的邻居,则在总邻居数中应计两次。

输入格式

第一行包含两个整数 nn 和 kk(1≤n≤1001 \leq n \leq 100,1≤k≤10⋅n1 \leq k \leq 10 \cdot n),分别表示飞机的排数和需要安排的普通乘客人数。

接下来 nn 行,每行描述一排座位。如果某个字符为 '-',表示过道;为 '.',表示空座;为 'S',表示该座位已被常旅客占用;为 'P',表示该座位已被普通乘客占用。

保证空座数量不少于 kk。保证所有排的格式均符合题目描述。

输出格式

第一行输出常旅客的邻居总数的最小值。

接下来输出一种使常旅客邻居总数最小的乘客安排方案,格式与输入相同。如果在空座上安排了一名普通乘客,则将该位置的 '.' 替换为小写字母 'x'。

输入输出样例

  • 输入#1

    1 2
    SP.-SS.S-S.S

    输出#1

    5
    SPx-SSxS-S.S
  • 输入#2

    4 9
    PP.-PPPS-S.S
    PSP-PPSP-.S.
    .S.-S..P-SS.
    P.S-P.PP-PSP

    输出#2

    15
    PPx-PPPS-S.S
    PSP-PPSP-xSx
    xSx-SxxP-SSx
    P.S-PxPP-PSP

说明/提示

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页