// Saint Bonaventure University Programming Contest // February 15, 2008 // Problem #6 - Bomb Defusal // Team Name: SOLUTION #include using namespace std; #include "apstring.h" #include "apvector.h" #include "bombMeter.h" apstring duplicate(char c); apstring nextAnagramString(const apstring & s); apstring sortString(const apstring & s); int main(void) { int serialNum; cin >> serialNum; BombMeter bm(serialNum); apstring answer = ""; // Get an anagram of the code for (char c='A'; c<='Z'; c++) { apstring toTest = duplicate(c); bm.test(toTest); for (int i=0; i0) && (s[invPt]<=s[invPt-1])) { invPt--; } if (invPt==0) { return sortString(s); } invPt--; // Find replacement char int repLoc = invPt+1; for (int k = repLoc+1; k s[invPt] && s[k] < s[repLoc]) { repLoc = k; } } apstring prefix = s.substr(0,invPt); char rep = s[repLoc]; apstring suffix = ""; for (int j = invPt; j c(s.length()); for (int i=0; ic[j]) { char t = c[k]; c[k] = c[j]; c[j] = t; } } } apstring ans = ""; for (int i=0; i