【贪心】洛谷 P1106 删数问题

xiaoxiao2021-02-28  118

题目描述

键盘输入一个高精度的正整数N,去掉其中任意k个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的N和k,寻找一种方案使得剩下的数字组成的新数最小。

输出应包括所去掉的数字的位置和组成的新的正整数。(N不超过250位) 输入数据均不需判错。

输入输出格式

输入格式: n (高精度的正整数)

k (需要删除的数字个数)

输出格式: 最后剩下的最小数。

输入输出样例

输入样例#1: 175438 4 输出样例#1: 13

代码

#include<iostream> #include<cstring> using namespace std; char a[250]; int main() { scanf("%s",a); int len=strlen(a),s; cin>>s; for(int i=0;i<s;i++) { for(int j=0;j<len-1;j++) { if(a[j]>a[j+1]) { for(int k=j;k<len-1;k++)a[k]=a[k+1]; break; } } len--; } bool c=false; for(int i=0;i<len;i++) { if(a[i]!='0')c=true; if(c)cout<<a[i]; } return 0; }
转载请注明原文地址: https://www.6miu.com/read-47830.html

最新回复(0)