当日总结
牛客 冰冻青蛙
如果一个青蛙的编号为
x
x,满足
gcd
(
x
,
999
999
999
⏟
9
个
9
)
≠
1
include
include
include
using namespace std;
using ll=long long;
const ll num=999999999;
ll gcd(ll a,ll b)
{
while(b!=0)
{
ll tmp=b;
b=a%b;
a=tmp;
}
return a;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr),cout.tie(nullptr);
ll n;
cin>>n;
queue
queue
for(ll i=1;i<=n;i++)
{
if(gcd(i,num)!=1)
{
froze.push(i);
}
else {
frozed.push(i);
}
}
if(froze.size()*3<n)
{
cout<<"Baka!"<<endl;
}
else {
while(!froze.empty()||!frozed.empty())
{
if(!frozed.empty())
{
cout<<frozed.front()<<" ";
frozed.pop();
}
if(!froze.empty())
{
cout<<froze.front()<<" ";
froze.pop();
}
if(!frozed.empty())
{
cout<<frozed.front()<<" ";
frozed.pop();
}
}
}
return 0;
}
// 64 位输出请用 printf("%lld")
gcd(x,
9 个 9
999999999
)
=1,则可以一次性冻结它以及它左右相邻的青蛙(如果存在);
∙
∙被冻结的青蛙可以再次被选中并冻结。
现在,你作为琪露诺的好朋友大妖精,可以提前帮助琪露诺,将这些青蛙进行重新排序。如果排序后可以使得琪露诺通过施展任意多次魔法、最终冻结所有的青蛙,她会夸你和她一样聪明。否则,琪露诺会气呼呼的说你是
Baka!
Baka!。当然,你也需要骂回去。
gcd
gcd,即最大公约数,指两个整数共有约数中最大的一个。例如,
12
12 和
30
30 的公约数有
1
,
2
,
3
,
6
1,2,3,6,其中最大的约数是
6
6,因此
gcd
(
12
,
30
)
6
gcd(12,30)=6。
输入描述:
在一行上输入一个整数
n
(
3
≤
n
≤
1
0
5
)
n(3≤n≤10
5
) 代表青蛙数量。
输出描述:
如果不存在任何一种排序,使得琪露诺可以冻结所有青蛙,直接输出
Baka!
Baka!。否则,在一行上输出
n
n 个不同的整数
a
1
,
a
2
,
…
,
a
n
(
1
≤
a
i
≤
n
)
a
1
,a
2
,…,a
n
(1≤a
i
≤n),代表重新排序后的青蛙编号。
如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。

浙公网安备 33010602011771号