View Code of Problem 609

#include<iostream>

using namespace std;

int main(){
	string str;
	int s;

	int num[10]={0};
	
	while(cin>>str>>s){
		for(int i=0;i<str.length();++i){
			num[str[i]-'0']++;
		}
		for(int i=9;i>=0;--i){
			if(num[i]!=0 && s!=0){
				if(s>=num[i]){
					s-=num[i];
					num[i]=0;
				} else {
					num[i]-=s;
					s=0;
					break;
				} 
			}
			
		}
		string strRes="";
		for(int i=0;i<10;++i){
			while(num[i]!=0){
				strRes.push_back(i+'0');
				num[i]--;
			}
		}
		int count;
		for(count=0;count<strRes.length();++count){
			if(strRes[count]!='0'){
				break; 
			} 
		}
		if(count<strRes.length()){
			cout<<strRes.substr(count,strRes.length())<<endl;
		} else {
			cout<<"0"<<endl;
		}
		
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 609