CodeForces - 1009B Minimum Ternary String 思维

CodeForces - 1009B Minimum Ternary String

题意:

给你一串由0 1 2组成的字符串,相邻的 0 和 1 可以交换位置,相邻的 1 和 2 可以交换位置,输出最小的字符串  。

思路:

由题意可知 1 可以和 0 或 2 互换,所以 1 可以在字符串中任意移动。从第一个 2 后边的 0 开始,0 与 2 的相对位置保持不变。

第一个 2 前边的 0 都交换到开头。

#include
#include
#include
#include
#include
#include
#include
#define inf 0x3f3f3f3f
using namespace std;
const int maxn=1e5+10;
typedef long long ll;
char s[maxn],str[maxn];
int main()
{
    scanf("%s",&s);
    int n = strlen(s);
    int sum = 0; // 第一个2 前边0 的个数 
    int sum1 = 0;  // 1 的个数
    int k = 0,flag = 0;
    for(int i=0;i

 

你可能感兴趣的:(思维)