CF128E Birthday
题目描述
今天是 Anna 的生日。她邀请了许多客人,并制作了一个巨大的(几乎无限大的)生日蛋糕,蛋糕上装饰着 $n$ 个大小不同的香蕉圆圈。Maria 的生日也将在 7 分钟后开始,Anna 年纪更大,所以她决定稍微“当一下老大”。她让 Maria 用 $k$ 条直线切蛋糕(切割线可以相交),将香蕉圆圈分割成香蕉块。
Anna 有很多客人,她希望每个人都能得到至少一块香蕉块。因此,她让 Maria 使香蕉块的总数最大化。如果有些香蕉块最终落在同一块蛋糕上也没关系——关键是要让香蕉块的数量最大。请你计算 Maria 最多能切出多少块香蕉块。
输入格式
第一行包含两个整数 $n$ 和 $k$,分别表示香蕉圆圈的数量和 Maria 需要切的直线数量($1 \leq n \leq 1000$,$1 \leq k \leq 10^{5}$)。接下来的 $n$ 行,每行包含三个整数 $x$、$y$ 和 $r$,分别表示每个香蕉圆圈的圆心坐标和半径($-1000 \leq x, y \leq 1000$,$1 \leq r \leq 1000$)。
保证所有香蕉圆圈互不相交、不相切、也不重叠。
预测试 10 是一个大数据测试,$n=k=1000$。
输出格式
输出一个整数,表示 Maria 用 $k$ 条直线最多可以切出多少块香蕉块。
请不要在 C++ 中使用 %lld 格式符来读写 64 位整数。推荐使用 cin、cout 流或 %I64d 格式符。
说明/提示
由 ChatGPT 4.1 翻译