📄 2209.cpp
字号:
#include <iostream>
#include <string>
using namespace std;
string in, tp;
void change(int i)
{
if (in[i] == '1')
{
in[i] = '0';
}
else
{
in[i] = '1';
}
}
int main()
{
int i, num1, num2;
bool ok1, ok2;
while (cin >> in)
{
tp = in;
num1 = 1;
change(0);
change(1);
for (i = 1; i < in.length(); i++)
{
if (in[i - 1] == '1')
{
if (i != in.length() - 1)
{
num1++;
change(i - 1);
change(i);
change(i + 1);
}
else
{
num1++;
change(i - 1);
change(i);
}
}
}
ok1 = true;
for (i = 0; i < in.length(); i++)
{
if (in[i] == '1')
{
ok1 = false;
break;
}
}
in = tp;
num2 = 0;
for (i = 1; i < in.length(); i++)
{
if (in[i - 1] == '1')
{
if (i != in.length() - 1)
{
num2++;
change(i - 1);
change(i);
change(i + 1);
}
else
{
num2++;
change(i - 1);
change(i);
}
}
}
ok2 = true;
for (i = 0; i < in.length(); i++)
{
if (in[i] == '1')
{
ok2 = false;
break;
}
}
if (ok1 == false && ok2 == false)
{
printf("NO\n");
}
else
{
if (ok1 == true && ok2 == true)
{
printf("%d\n", num1 < num2 ? num1 : num2);
}
else if (ok1)
{
printf("%d\n", num1);
}
else if (ok2)
{
printf("%d\n", num2);
}
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -