51nod 2485 小b重排字符串

Posted 8023spz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51nod 2485 小b重排字符串相关的知识,希望对你有一定的参考价值。

小b有一个字符串S,现在她希望重排列S,使得S中相邻字符不同。

请你判断小b是否可能成功。

样例解释:将"aab"重排为"aba"即可。

 

输入

输入一个只包含小写字母的字符串S,其长度n满足1≤n≤500

输出

如果可能,输出"Possible";
否则,输出"Impossible"。

输入样例

aab

输出样例

Possible

只要同一种字母不超过总数的一半即可,保证能交叉放开。
代码:
#include <iostream>
#include <cstdlib>
#include <cstdio>

using namespace std;
bool flag;
int num[26],m,c;
int main() {
    char ch;
    while((ch = getchar()) != \n) {
        m = max(m,++ num[ch - a]);
        c ++;
    }
    puts(m > (c + 1) / 2 ? "Impossible" : "Possible");
}

 

以上是关于51nod 2485 小b重排字符串的主要内容,如果未能解决你的问题,请参考以下文章

51nod 1631 小鲨鱼在51nod小学

51 Nod 1349 最大值

51Nod2489 小b和灯泡

51Nod 1119 机器人走方格 V2 组合数学 费马小定理

51nod——2476 小b和序列 预处理

51nod 2478单调栈前缀和小b接水