51nod 2485 小b重排字符串
阿新 • • 發佈:2019-05-03
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重排字符串