cafelier のSRM参加記録です。コンテスト中に考えてたことを執拗に全部書き残すとどうなるだろうかという試み本番中にこういうコードが書きたかったなあ、という後で書いた反省コードを書き残す試み
スパムが来たのでしばらくコメント欄をはてなユーザ限定にしています、すみません、
あとで | |
全通り試すだけー。(3/25 13:13 もうちょい素直にした)
template<typename D, typename S> D lexical_cast(const S& s) { D d; stringstream ss; ss<<s; ss>>d; return d; } class TheSwap { public: int findMax(int n, int k) { set<string> canMake; canMake.insert( lexical_cast<string>(n) ); while( k --> 0 ) { set<string> prev; prev.swap(canMake); for(set<string>::iterator it=prev.begin(); it!=prev.end(); ++it) { string s = *it; for(int i=0; i<s.size(); ++i) for(int j=i+1; j<s.size(); ++j) if( !(i==0 && s[j]=='0') ) { swap(s[i], s[j]); canMake.insert(s); swap(s[i], s[j]); } } } return canMake.empty() ? -1 : lexical_cast<int>(*canMake.rbegin()); } };
presented by cafelier/k.inaba under