Posted on 2012-05-03 23:55
hoshelly 閱讀(513)
評論(1) 編輯 收藏 引用 所屬分類:
Programming
刪數(shù)問題
時間限制:1000 ms | 內(nèi)存限制:65535 KB
- 描述
給出一個N位正整數(shù)(首位不為0),去掉其中S個數(shù)字后剩下的數(shù)字按左右次序組成一個新的N-S位正整數(shù)(首位不能為0)。對給定的N和S,尋找一種刪數(shù)規(guī)則使得剩下得數(shù)字組成的新數(shù)最小。
- 輸入
第一行一個正整數(shù)T ,表示有T組測試數(shù)據(jù)。
對于每組測試數(shù)據(jù):第一行兩個正整數(shù) n ,s (s< n <= 10, 000) (用空格隔開); 第二行為一個n 位正整數(shù)。
- 輸出
對于每組測試數(shù)據(jù)輸出一行:最小的新數(shù)。
- 樣例輸入
2 10 2 1234334789 11 3 90019008798
- 樣例輸出
12333478 19008798
#include<stdio.h>
#include<string.h>
int main()
{
int n,s,k,i,m;
char a[10000];
scanf("%d",&n);
while(n--)
{
i=0;
scanf("%d%d",&m,&s);
scanf("%s",a);
while(s>0)
{
while(i<strlen(a) && a[i]<=a[i+1] && a[i]!='0') i++;
for(k=i;k<strlen(a);k++)
{
a[k]=a[k+1];
}
s--;
}
printf("%s\n",a);
}
return 0;
}