1. 程式人生 > >51nod 2485 小b重排字符串

51nod 2485 小b重排字符串

ios -c clu evel tchar ESS getchar() ucc ace

小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重排字符串