[蓝桥杯青少年组国赛 2024] 第五题

Luogu
IDLGB4310
Time1000ms
Memory512MB
DifficultyP3
2024前缀和蓝桥杯青少年组
给定包含 $n$ 个整数的数列,从中选取一段连续子数列,使其元素之和能被 $k$ 整除。 请找出符合要求的最长连续子数列并输出其长度以及子数列本身;如果符合要求的最长连续子数列有多个,则输出起始位置最靠后的那个子数列。如果不存在符合要求的子数列,则输出 $-1$。 例如:当 $n=7$,$k=7$,数列为 $7$、$3$、$4$、$1$、$5$、$14$、$9$ 时: - 连续子数列 $\{7\}$、$\{7,3,4\}$、$\{3,4\}$ 和 $\{5,14,9\}$ 的和都能被 $7$ 整除; - 其中最长的连续子数列有 $\{7,3,4\}$ 和 $\{5,14,9\}$,起始位置最靠后的是 $\{5,14,9\}$; - 故符合要求的最长连续子数列长度为 $3$,子数列为 $5$ $14$ $9$。 ## Input - 第一行输入两个整数 $n$ 和 $k$($1 \leq n \leq 10^5$,$2 \leq k \leq 10^8$),整数之间以一个空格隔开; - 第二行输入 $n$ 个整数($1 \leq$ 整数 $\leq 10^4$),整数之间以一个空格隔开。 ## Output 如果存在符合要求的最长连续子数列,则输出为两行: 1. 第一行输出一个整数,表示最长连续子数列的长度; 2. 第二行输出若干个整数,表示起始位置最靠后的最长连续子数列,整数之间以一个空格隔开。 如果不存在符合要求的子数列,则输出 $-1$。 [samples]
Samples
Input #1
7 7
7 3 4 1 5 14 9
Output #1
3
5 14 9
API Response (JSON)
{
  "problem": {
    "name": "[蓝桥杯青少年组国赛 2024] 第五题",
    "description": {
      "content": "给定包含 $n$ 个整数的数列,从中选取一段连续子数列,使其元素之和能被 $k$ 整除。 请找出符合要求的最长连续子数列并输出其长度以及子数列本身;如果符合要求的最长连续子数列有多个,则输出起始位置最靠后的那个子数列。如果不存在符合要求的子数列,则输出 $-1$。 例如:当 $n=7$,$k=7$,数列为 $7$、$3$、$4$、$1$、$5$、$14$、$9$ 时: - 连续子数列 $\\{7",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P3"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGB4310"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "给定包含 $n$ 个整数的数列,从中选取一段连续子数列,使其元素之和能被 $k$ 整除。\n\n请找出符合要求的最长连续子数列并输出其长度以及子数列本身;如果符合要求的最长连续子数列有多个,则输出起始位置最靠后的那个子数列。如果不存在符合要求的子数列,则输出 $-1$。\n\n例如:当 $n=7$,$k=7$,数列为 $7$、$3$、$4$、$1$、$5$、$14$、$9$ 时:\n- 连续子数列 $\\{7...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments