CodeForces_435B_C
2015-08-01 17:14
218 查看
Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d
& %I64u
Submit Status Practice CodeForces
435B
Description
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 Input
Input
Output
Input
Output
Input
Output
Input
Output
这道题是贪心的思想,在n步之内找到最大的数字,从后往前交换,交换一次n--;直到n为零;
#include <iostream>
#include <stdio.h>
#include <string.h>
char a[20];
int n;
using namespace std;
int main()
{
while(scanf("%s",&a)!=EOF)
{
scanf("%d",&n);
int len=strlen(a);
int npos,j;
for(int i=0;i<len;i++)
{
npos=i;
char ch=a[i];
for( j=i+1;j<=i+n&&j<len;j++)
{
if(a[j]>ch)
{
npos=j;
ch=a[j];
}
}
//cout<<npos;
if(npos!=i)
{
for(int p=npos;p>=i+1;p--)
{
char tem=a[p];
a[p]=a[p-1];
a[p-1]=tem;
n--;
}
}
if(!n) break;
}
for(int i=0;i<len;i++) cout<<a[i];
printf("\n");
}
return 0;
}
& %I64u
Submit Status Practice CodeForces
435B
Description
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 Input
Input
1990 1
Output
9190
Input
300 0
Output
300
Input
1034 2
Output
3104
Input
9090000078001234 6
Output
9907000008001234
这道题是贪心的思想,在n步之内找到最大的数字,从后往前交换,交换一次n--;直到n为零;
#include <iostream>
#include <stdio.h>
#include <string.h>
char a[20];
int n;
using namespace std;
int main()
{
while(scanf("%s",&a)!=EOF)
{
scanf("%d",&n);
int len=strlen(a);
int npos,j;
for(int i=0;i<len;i++)
{
npos=i;
char ch=a[i];
for( j=i+1;j<=i+n&&j<len;j++)
{
if(a[j]>ch)
{
npos=j;
ch=a[j];
}
}
//cout<<npos;
if(npos!=i)
{
for(int p=npos;p>=i+1;p--)
{
char tem=a[p];
a[p]=a[p-1];
a[p-1]=tem;
n--;
}
}
if(!n) break;
}
for(int i=0;i<len;i++) cout<<a[i];
printf("\n");
}
return 0;
}
相关文章推荐
- 地理信息产业现状:也许,我们正处在最好的年代
- 学习笔记——Java数字处理类
- hdu4549 斐波那契数列(乘法递推) + 欧拉定理 (快速幂,模幂)
- 深入浅出Mybatis-与Spring集成
- hdoj 2111 Saving HDU
- 基本排序方法之五——简单选择排序
- HDU 1823 Luck and Love
- Redis Sentinel初体验
- Android核心基础-7.Android 网络通信-4.获取网络XML,JSON
- 字符串的比较
- zoj 1526 Big Number (N阶乘的位数)
- 51nod1189
- 动态库的动态链接(error while loading shared libraries,cannot open shared object file)
- SVM理解
- java多线程之 ---- 线程死锁
- opencv源码分析(一):imread、cvLoadImage、waitKey、imshow函数
- Leetcode|Find Minimum in Rotated Sorted Array[二分查找]
- C++之sstream格式流(常用于格式转换)
- Xcode7 beta 网络请求报错:The resource could not be loaded because the App Transport Security policy requir
- CSS基础-20CSS定位-浮动