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 C# (judge verdict: Wrong Answer)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Contest
{
    class Program
    {
        static int Main(string[] args)
        {
            new Program().Process();

            return 0;
        }

        private CommonInput cin;

        private void Process()
        {
            this.cin = new CommonInput();

            int N, M, P;
            int[] player = new int[100];
            int sum;
            int result;

            while (true)
            {
                N = this.cin.GetNextToInt();
                M = this.cin.GetNextToInt();
                P = this.cin.GetNextToInt();
                sum = 0;

                // ??\????????????????????¨???????????????????????????????????¨???????????¨??????????????\??????????????????
                if (N == 0 && M == 0 && P == 0)
                    break;

                for (int i = 0; i < N; i++)
                {
                    player[i] = this.cin.GetNextToInt();
                    sum += player[i] * 100;
                }

                if (player[M - 1] > 0)
                    result = (int)(sum * (1d - P / 100d) / player[M - 1]);
                else
                    result = 0;

                Console.WriteLine(result);
            }
        }
    }

    public class CommonInput
    {
        public CommonInput()
        {
            this._s = new string[0];
            this._i = 0;
        }

        public string Line { get; set; }
        private string[] _s;
        private int _i;
        private char[] _sep = { ' ' };

        public void GetLine()
        {
            this._i = 0;
            do
            {
                this.Line = Console.ReadLine();
            } while (this.Line == "");

            if (this.Line != null)
                this._s = this.Line.Split(this._sep, StringSplitOptions.RemoveEmptyEntries);
        }

        public string GetNext()
        {
            if (this._i < this._s.Length)
                return this._s[this._i++];

            this.GetLine();

            return this._s[this._i++];
        }

        public int GetNextToInt()
        {
            return int.Parse(this.GetNext());
        }

        public long GetNextToLong()
        {
            return long.Parse(this.GetNext());
        }

        public double GetNextToDouble()
        {
            return double.Parse(this.GetNext());
        }
    }
}