Codeforces 435B. Pasha Maximizes
2016-01-29 20:09
543 查看
简单贪心....
B. Pasha Maximizes
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Pasha has a positive integer a without leading zeroes. Today he decided that the number is too small and he should make it larger. Unfortunately, the only
operation Pasha can do is to swap two adjacent decimal digits of the integer.
Help Pasha count the maximum number he can get if he has the time to make at most k swaps.
Input
The single line contains two integers a and k (1 ≤ a ≤ 1018; 0 ≤ k ≤ 100).
Output
Print the maximum number that Pasha can get if he makes at most k swaps.
Sample test(s)
input
output
input
output
input
output
input
output
B. Pasha Maximizes
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Pasha has a positive integer a without leading zeroes. Today he decided that the number is too small and he should make it larger. Unfortunately, the only
operation Pasha can do is to swap two adjacent decimal digits of the integer.
Help Pasha count the maximum number he can get if he has the time to make at most k swaps.
Input
The single line contains two integers a and k (1 ≤ a ≤ 1018; 0 ≤ k ≤ 100).
Output
Print the maximum number that Pasha can get if he makes at most k swaps.
Sample test(s)
input
1990 1
output
9190
input
300 0
output
300
input
1034 2
output
3104
input
9090000078001234 6
output
9907000008001234
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; char str[200]; int nt; int main() { long long int a; int k; cin>>a>>k; while(a) { str[nt++]=a%(10LL)+'0'; a/=10LL; } for(int i=nt-1;i>=0&&k;i--) { int mark=-1,dist=-1; for(int j=i;j>=max(0,i-k);j--) { if(str[j]>str[mark]) { mark=j; dist=i-j; } } k-=dist; for(int j=mark;j<i;j++) { swap(str[j],str[j+1]); } } for(int i=nt-1;i>=0;i--) { cout<<str[i]; } cout<<endl; return 0; }
相关文章推荐
- ORACLE中null的排序问题
- Swift中NSData与NSDictionary之间的相互转换
- hdu 5273(递推)
- oracle connect by用法
- HDU3584(树状数组)
- Placing Lampposts
- C++ lambda笔记
- 体绘制之光线投射算法(附源码)
- [R语言]读取文件夹下所有子文件夹中的excel文件,并根据分类合并。
- 四、Lua协同程序
- Fragment填充ToolBar菜单
- HDU2457 DNA repair(AC自动机+DP)
- Linux Bash的基本功能 输出重定向
- oracle数据导出导入
- scikit-learn入门到精通(三):监督学习
- asm基础——汇编中的结构体
- mysql如何让一个存储过程定时执行
- jdk目录详解及其使用方法
- 51nod 1358:浮波那契 构造矩阵
- Oracle 游标使用全解