Problem:
Princess' Gamble

お姫様のギャンブル

English text is not available in this practice contest.

ある貧乏な国のおてんばで勇敢なお姫様は，ある日部屋の壁を壊してお城を抜け出し，競馬などのギャンブルが行われている賭博場に入っていった．ところが，ギャンブルなどやったことのないお姫様は，非常に負けが込んでしまった．この状況をおもしろくないと思ったお姫様は，一体どのような仕組みでギャンブルが行われているかを調べてみた．すると，このようなギャンブルではパリミュチュエル方式と呼ばれる方式で配当が決定されていることを突き止めた．

パリミュチュエル方式とは，競走を対象としたギャンブルにおいて配当を決定するために使用する計算方法である．この方式では，全ての掛け金をプールし，一定の割合を控除した上で，当選者に掛け金に比例した金額を分配する．

現在お姫様が熱中しているギャンブルは，参加者は競技前にどの競技者が優勝するかを予想する 1枚100ゴールドの投票券を購入し，競技の結果が予想と一致すれば当選金を受け取る権利を得るというものである．なお，ゴールドはこの国の通貨単位である．あなたの仕事は入力として与えられる競技の情報をもとに，投票券一枚あたりの配当を計算するプログラムを書くことである．

先述の方法で計算される配当額が整数にならない場合は，切り捨てによって整数にすること．

Input

入力は複数のデータセットから成る．データセットの個数は100以下である．最後のデータセットの後に，入力の終わりを示す「0 0 0」からなる一行が与えられる．

各データセットは次のような形式をしている．

N M P

X1

...

XN

最初の行の N は投票の対象となる競技者の数，M は優勝した競技者の番号，P は控除率（百分率）を表す整数である． Xi は i 番目の競技者に投票された投票券の枚数である． 1 ≦ N ≦ 100， 1 ≦ M ≦ N， 0 ≦ P ≦ 100， 0 ≦ Xi ≦ 1000 を仮定してよい．

Output

各データセットに対し，当選した投票券一枚あたりの配当金額を示す整数からなる一行を出力せよ．賭けに勝った人がいない場合は0を出力せよ．出力行には他の文字があってはならない．

Sample Input

3 2 50
1
2
3
4 4 75
1
2
3
0
3 1 10
8
1
1
0 0 0

Output for the Sample Input

150
0
112

Solution in JAVA (judge verdict: Accepted)

import java.io.OutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.IOException;
import java.util.NoSuchElementException;
import java.io.InputStream;

/**
 * Built using CHelper plug-in
 * Actual solution is at the top
 */
public class Main {
	public static void main(String[] args) {
		InputStream inputStream = System.in;
		OutputStream outputStream = System.out;
		Scanner in = new Scanner(inputStream);
		PrintWriter out = new PrintWriter(outputStream);
		Task5 solver = new Task5();
		solver.solve(1, in, out);
		out.close();
	}

	static class Task5 {
		public void solve(int testNumber, Scanner sc, PrintWriter out) {

			while (true) {
				int n = sc.nextInt();
				int m = sc.nextInt();
				int p = sc.nextInt();
				if (n == 0 && m == 0 && p == 0) break;
				m--;

				int[] x = sc.nextIntArray(n);

				int total = 0;
				for (int i = 0; i < n; i++) total += x[i];
				total *= (100 - p);

				out.println(x[m] > 0 ? total / x[m] : 0);
			}

		}

	}

	static class Scanner {
		private final InputStream in;
		private final byte[] buffer;
		private int ptr;
		private int buflen;

		public Scanner(InputStream in) {
			this.in = in;
			this.buffer = new byte[1024];
			this.ptr = 0;
			this.buflen = 0;
		}

		private boolean hasNextByte() {
			if (ptr < buflen) return true;
			else {
				ptr = 0;
				try {
					buflen = in.read(buffer);
				} catch (IOException e) {
					e.printStackTrace();
				}
				if (buflen <= 0) return false;
			}
			return true;
		}

		private byte readByte() {
			if (hasNextByte()) return buffer[ptr++];
			return -1;
		}

		private boolean isPrintableChar(byte c) {
			return '!' <= c && c <= '~';
		}

		private void skipUnprintable() {
			while (hasNextByte() && !isPrintableChar(buffer[ptr])) {
				ptr++;
			}
		}

		public boolean hasNext() {
			skipUnprintable();
			return hasNextByte();
		}

		public int nextInt() {
			if (!hasNext()) throw new NoSuchElementException();
			int n = 0;
			boolean minus = false;
			byte b = readByte();
			if (b == '-') {
				minus = true;
				b = readByte();
			}
			if (b < '0' || '9' < b) throw new NumberFormatException();
			while (true) {
				if ('0' <= b && b <= '9') {
					n *= 10;
					n += b - '0';
				} else if (b == -1 || !isPrintableChar(b)) {
					return minus ? -n : n;
				} else {
					throw new NumberFormatException();
				}
				b = readByte();
			}
		}

		public int[] nextIntArray(int n) {
			int[] a = new int[n];
			for (int i = 0; i < n; i++) {
				a[i] = nextInt();
			}
			return a;
		}

	}
}