寻找最大数 nyoj 448
2015-08-11 10:26
99 查看
寻找最大数
时间限制:1000 ms | 内存限制:65535 KB
难度:2
描述
请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大,
比如当n=92081346718538,m=10时,则新的最大数是9888
输入第一行输入一个正整数T,表示有T组测试数据
每组测试数据占一行,每行有两个数n,m(n可能是一个很大的整数,但其位数不超过100位,并且保证数据首位非0,m小于整数n的位数)输出每组测试数据的输出占一行,输出剩余的数字按原次序组成的最大新数样例输入
样例输出
时间限制:1000 ms | 内存限制:65535 KB
难度:2
描述
请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大,
比如当n=92081346718538,m=10时,则新的最大数是9888
输入第一行输入一个正整数T,表示有T组测试数据
每组测试数据占一行,每行有两个数n,m(n可能是一个很大的整数,但其位数不超过100位,并且保证数据首位非0,m小于整数n的位数)输出每组测试数据的输出占一行,输出剩余的数字按原次序组成的最大新数样例输入
2 92081346718538 10 1008908 5
样例输出
9888 98
#include<stdio.h> #include<string.h> #define M 101 char a[M],b[M]; int j ,m,f; int main() { int k; scanf("%d",&k); while(k--) { j=0;f=0; int i,w=0; memset(a,0,sizeof(a)); scanf("%s %d",a,&m); int len=strlen(a); for(i=m;i<len;i++) { char max=a[f]; for(j=f;j<=i;j++) { if(max<a[j]) { max=a[j]; f=j; } } b[w++]=max; a[f]='0'; } b[w]='\0'; puts(b); } return 0; }
相关文章推荐
- HDOJ--1863--畅通工程
- 数据库Statement对象
- 黑马程序员—————Java基础语法(2)----语句、函数和数组
- dl in image process
- win10图片浏览的模式怎么改回到改win7样式的?
- HDU2193-AVL-数据结构-AVL
- Valid Anagram
- css3:bacground-size
- 浅谈微信三级分销系统的漏洞
- SQL truncate 、delete与drop区别
- vsftpd配置文件详解
- EditText属性详情
- 关于自执行函数
- IntelliJ 常用快捷键
- 注册引导页面
- hdoj 1863 畅通工程
- LayoutInflater 与 inflate
- SQL truncate 、delete与drop区别
- 19-集合框架工具类-20-常用对象API(集合框架-JDK5.0特性-ForEach循环)
- web压力测试工具