View Code of Problem 609

import java.util.*;
public class Main {
	public static void main(String[] args) {
		Scanner in =new Scanner(System.in);
		while(in.hasNext()) {
			StringBuffer sb = new StringBuffer(in.next());
			int n  =in.nextInt();
			while(n>0) {
				int l  =findzerobefore(sb);
				if(l<=n && l!=-1) {
					sb.delete(0, l);
					n-=l;
				}else {
					int max = findmax(sb);
					sb.deleteCharAt(max);
					n-=1;
				}
				re0(sb);
			}
			System.out.println(Integer.parseInt(sb.toString()));
		}
	}
	public static int findzerobefore(StringBuffer sb) {
		for(int i =0;i<sb.length();i++) {
			if(sb.charAt(i)=='0') {
				if(i==0) {
					return -1;
				}else {
					return i;	
				}
			}
		}
		return -1;
	}
	public static int findmax(StringBuffer sb) {
		int max='0';
		int maxloc=-1;
		for(int i =0;i<sb.length();i++) {
			if(sb.charAt(i)>max) {
				maxloc=i;
				max=sb.charAt(i);
			}
		}
		return maxloc;
	}
	public static void re0(StringBuffer sb) {
		if(sb.length()==0) {
			sb.append('0');
			return;
		}
		while(sb.charAt(0)=='0') {
			sb.deleteCharAt(0);
		}
	}
}

Double click to view unformatted code.


Back to problem 609