Problem:
MathJax.Hub.Config({ tex2jax: { inlineMath: [["$","$"], ["\\(","\\)"]], processEscapes: true }});

jfen

H × W の盤面で遊ぶ一人用ゲームがある．このゲームはそれぞれのセルに 0 か 1 個のボールがあるのでそれを移動させるゲームである．あなたはこのゲームで遊んでいたが，ボールは非常に丸いため，セルからセルへ正確にボールを移動させるのが難しいことに気づいた．そこであなたは，命令通りにボールを動かしてくれるロボットを作ることにした．ここで，セルを表す表記として (y, x) という表記を用いる．これは y 行目の x 列目のセルを表す．

ロボットへの命令は 4 つの整数 a, b, c, d で与えられる．これは (a, b) にあるボールを (c, d) に移動することを表す．このとき，(a, b) にボールが存在し， (c, d) にボールが存在しないことが保証される．

盤面の状態は，"jfen" と呼ばれる次の記法で表される．

[1 行目のデータ]/[2 行目のデータ]/.../[H 行目のデータ]

この記法は盤面の各行を表すデータをスラッシュ区切りで連結したものである．各行のデータは文字列で表され，1 列目からW列目にあるセルの状態を左から順に記述している．この文字列は数字と文字 'b' で表され，数字が表す整数は連続した空白のセル数を，'b' はボールが存在するセルを表している．ここで，各行のデータで整数が連続してはならない．また，各行のデータに書かれている整数の総和と 'b' の個数の和は必ず W になる．

例として，次のような盤面状態を考える．空白のセルを '.' で表し，ボールが存在するセルを 'b' で表現している．この例の i 行目の左から j 文字目は盤面の i 行目の j 列目のセルの状態を表す．

....
.b.b
....

上記の盤面を jfen で表記すると次のようになる．

4/1b1b/4

ロボットに現在の盤面の状態と 1 つのボールを動かす命令を与えた時に，ロボットがボールを動かした後の盤面を出力するプログラムを作成せよ．このとき，出力する盤面は jfen 記法で出力せよ．

Input

入力は複数データセットからなる．
各データセットは以下の形式からなる．

S
a b c d

各データセットは 2 行からなり，最初の行には盤面の状態を表す jfen 形式の文字列 S が与えられる．ここで， 盤面のサイズは 2 ≤ W, H ≤ 9 を満たす．続く行にはロボットへの命令が与えられる．これは (a, b) にあるボールを (c, d) に移動させる命令を表す．また，入力の終わりは # で表される．

Output

出力は各データセットごとに命令を実行したあとの盤面の状態を jfen 記法で表した文字列 1 行である．出力行には他の文字があってはならない．

Sample Input

b1/1b
1 1 1 2
b5/bbbbbb
2 4 1 4
b2b2b/7
1 4 2 4
#

Output for Sample Input

1b/1b
b2b2/bbb1bb
b5b/3b3

1番目の入力の初期状態は次のようになる．

b．
.b

(1,1) のボールを (1,2) に移動させるので命令後の盤面は次のようになる．

.b
.b

Solution in JAVA (judge verdict: Wrong Answer)

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		while(true) {
			char[][] area = new char[9][9];
			String s = sc.next();
			if(s.equals("#")) {break;}
			int i=0;
			try {
			for(int h=0;h<9;h++) {
				for(int w=0;w<9;w++) {
					if(s.charAt(i) == '/') {
						i++;
						break;
					}else if(s.charAt(i) == 'b') {
						i++;
						area[h][w] = 'b';
					}else {
						int blank = Character.getNumericValue(s.charAt(i));
						i++;
						for(int a=0;a<blank;a++) {
							area[h][w] = 'a';
							w++;
						}
						w--;
					}
				}
			}
			}
			catch(IndexOutOfBoundsException e) {
				
			}
			area[sc.nextInt()-1][sc.nextInt()-1] = 'a';
			area[sc.nextInt()-1][sc.nextInt()-1] = 'b';
			
			s = "";
			int p=0;
			
			try {
				for(int h=0;h<9;h++) {
					p=0;
					for(int w=0;w<9;w++) {
						if(area[h][w] == 'b') {
							if(p>0) {
								s += p;
							}
							s += "b";
							p=0;
						}else if(area[h][w] == 'a'){
							p++;
						}
					}
					if(p>0) {
						s += p;
					}
					
					s+="/";
				}
			}catch(IndexOutOfBoundsException e) {
				
			}

			s=s.replace("//", "/");
			s=s.replace("//", "/");
			s=s.replace("//", "/");
			s=s.replace("//", "/");
			s=s.replace("//", "/");
			
			System.out.println(s.substring(0, s.length()-1));
			
		}
	sc.close();
	}

}