题意 有m个水平放置且相邻的格子,每个格子中至少有一个坦克,你需要用导弹消灭这些坦克,如果一个坦克承受伤害的第一时间,瞬间移动到一个相邻细胞(坦克n只能移动到n - 1处,1坦克只能移动到2处)。如果坦克第二次受到伤害,它被计算为毁灭,不再移动。坦克只有在它们第一次被损坏时才会移动,它们不会自行移动。
帮助Slava用几颗炸弹可能摧毁所有的坦克。
在第一行打印M炸弹”需要消灭所有坦克的最小数量。
在第二行打印M的K1,K2 , …,KM。数奇意味着第i个炸弹应该被丢弃在Ki处。
先攻击偶数的格子 然后攻击奇数的格子 再攻击偶数的格子就可以把所有坦克消灭掉了
#include <cstdio>
#include <cstring>
#include <string>
#include <iostream>
#include <algorithm>
#include <set>
using namespace std;
int main()
{
int n;
scanf("%d", &n);
int sum = n & 1 ? n + n / 2 : n + n / 2;
printf("%d\n", sum);
for (int i = 1; i <= n; i ++) {
if (!(i & 1)) printf("%d ", i);
}
for (int i = 1; i <= n; i ++) {
if (i & 1) printf("%d ", i);
}
for (int i = 2; i <= n; i ++) {
if (!(i & 1)) printf("%d ", i);
}
printf("\n");
}