时间限制: 1 Sec 内存限制: 32 MB
提交: 18 解决: 4
[提交][状态][讨论版]题目描述
有一个长度不走过20位的整数(以字符串的形式给出),同时给出一个加入数字p,p可加入在整数的任何位置。加入之后,再删去一个数字,使剩下来的数最大。
例如:有整数: 1 2 3 4 5 6 7 8 P 为 5
得到的结果: 5 2 3 4 5 6 7 8
说明: 1 2 3 4 5 6 7 8 加入5之后成为: 5 1 2 3 4 5 6 7 8
再删去1最后得到: 5 2 3 4 5 6 7 8
输入
输出
样例输入
12345678 5
样例输出
52345678
提示
来源

code
#include<iostream>
using namespace std;
string ans("0");
void solve(string s,int k,string t)
{
s.insert(k,t);
int i,len;
for (i=1,len=s.size();i<len;i++)
if (s[i]>s[i-1])
break;
s.erase(i-1,1);
if (s>ans) ans=s;
}
int main()
{
string s,n;
cin>>s>>n;
for (int i=0,len=s.size();i<=len;i++)
solve(s,i,n);
cout<<ans<<endl;
//cin.get();cin.get();
return 0;
}
posted on 2012-08-18 21:40
龙在江湖 阅读(329)
评论(0) 编辑 收藏 引用 所属分类:
基础