Go: // Entrance Examination(入学試験)
// http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=1600&lang=jp
package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
)

func main() {
	sc := bufio.NewScanner(os.Stdin)
	sc.Split(bufio.ScanWords)

	for {
		m, nMin, nMax := nextInt(sc), nextInt(sc), nextInt(sc)
		if m == 0 && nMin == 0 && nMax == 0 {
			break
		}

		points := []int{}
		for i := 0; i < m; i++ {
			points = append(points, nextInt(sc))
		}

		gapMax, pass := 0, 0
		for n := nMin; n <= nMax; n++ {
			gap := points[n-1] - points[n]
			if gap >= gapMax {
				gapMax, pass = gap, n
			}
		}

		fmt.Println(pass)
	}
}

func nextInt(sc *bufio.Scanner) int {
	sc.Scan()
	i, err := strconv.Atoi(sc.Text())
	if err != nil {
		panic(err)
	}
	return i
}

C++: #include<bits/stdc++.h>
 
using namespace std;
 
#define rep(i, n) repi(i,0,n)
#define repi(i,a,b) for(int i=(int)(a);i<(int)(b);++i)
#define pb push_back
 
int main(){
    int x,y,z;
    while(1){
        cin>>x>>y>>z;
 
        if(x==0&&y==0&&z==0)break;
 
 
        int a[114514];
        int b[114514];
 
        rep(i,x){
            cin>>a[i];
        }

        rep(i,z-y+1){
            b[i]=a[i+y-1]-a[i+y];
        }

        rep(i,z-y+1){
            // cout<<i<<" "<<b[i]<<endl;
        }

        int count=0;
        int tmp=0;
        int ans=0;

        for(int i=0;i<z-y+1;i++){
            if(tmp<b[i]){
                tmp=b[i];
                ans=i+2;
            }
        }
        cout<<ans<<endl;
 
       
    //     repi(i,y-1,z){
    //         // cout<<a[i]<<endl;
    //         // cout<<a[i+1]<<endl;
             
    //         if(tmp<=a[i]-a[i+1]){
    //             tmp=max(tmp,a[i]-a[i+1]);
    //             ans=i-1+y;
    //         }
 
    //         // cout<<"tmp:"<<tmp<<endl;
    //         // cout<<"ans:"<<ans<<endl;
 
    //         count++;
    //     }
    //     // cout<<count<<endl;
    //     // cout<<"tmp:"<<tmp<<endl;
    //     // cout<<"ans:"<<ans<<endl;
    //     if(y==1){
    //         cout<<ans+1<<endl;
    //     }else{
    //         cout<<ans<<endl;
    //     }
 
    }
     
}

C++: #include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef unsigned long long ull;
typedef pair<ll, ll> P;

#define fi first
#define se second
#define repl(i,a,b) for(ll i=(ll)(a);i<(ll)(b);i++)
#define rep(i,n) repl(i,0,n)
#define each(itr,v) for(auto itr:v)
#define pb push_back
#define all(x) (x).begin(),(x).end()
#define dbg(x) cout<<#x"="<<x<<endl
#define mmax(x,y) (x>y?x:y)
#define mmin(x,y) (x<y?x:y)
#define maxch(x,y) x=mmax(x,y)
#define minch(x,y) x=mmin(x,y)
#define uni(x) x.erase(unique(all(x)),x.end())
#define exist(x,y) (find(all(x),y)!=x.end())
#define bcnt __builtin_popcount

#define INF INT_MAX/3

int m,nmin,nmax;
int a[1111];

int main(){
	cin.sync_with_stdio(false);
  while(cin>>m>>nmin>>nmax){
    if(m==0)break;
    rep(i,m)cin>>a[i];
    sort(a,a+m);
    reverse(a,a+m);
    int gap=0,res=-1;
    repl(i,nmin-1,nmax){
      if(gap<=a[i]-a[i+1]){
        gap=a[i]-a[i+1];
        res=i+1;
      }
    }
    cout<<res<<endl;
  }
	return 0;
}

C++: #include <bits/stdc++.h>
using namespace std;
#define dump(x) cout << (x) << '\n';
typedef int64_t Int;
Int mod = 1e9+7;
Int INF = 1e9+7;

int main() {
    while (true) {
        Int m, nmin, nmax;
        cin >> m >> nmin >> nmax;
        if (m == 0) break;
        vector<Int> p(m + 1);
        for (Int i = 1; i <= m; i++) {
            cin >> p[i];
        }
        Int ma = -1e9;
        Int index = 1;
        for (Int i = nmin; i <= nmax; i++) {
            if (p[i] - p[i + 1] >= ma) {
                ma = p[i] - p[i + 1];
                index = i;
            }
        }
        dump(index);
    }
    return 0;
}

C++: #include <bits/stdc++.h>
using namespace std;

int main() {
    int n, nmin, nmax;
    while (cin >> n >> nmin >> nmax, n) {
        vector<int> P(n);
        for (int i = 0; i < n; ++i) cin >> P[i];

        int diff = 0;
        int res = -1;
        for (int i = nmin - 1; i <= nmax - 1; ++i) {
            if (diff <= P[i] - P[i + 1]) {
                diff = P[i] - P[i + 1];
                res = i + 1;
            }
        }
        cout << res << endl;
    }
    return 0;
}

C++: #include<iostream>
using namespace std;

int main(){
	while(true){
		int m,nmin,nmax;
		cin>>m>>nmin>>nmax;

	if(m==0 && nmin==0 && nmax==0){
		break;
	}

	int P[200];
	for(int i=0;i<m;i++){
			cin>>P[i];
	}

	int gap = -1;
	int n = -1;
	
	for(int i=nmin;i<=nmax;i++){
		int g = P[i-1]-P[i];

		if(gap<=g){
			gap =g;
			n=i;
		}
	}
	cout<< n<<endl;
	}

	return 0;
}

C++: #include <iostream>
#include <algorithm>
using namespace std;
int main()
{
	int a = 0, b = 0, c = 0;
	while (1)
	{
		int e = 0;
		int f = 0;
		cin >> a >> b >> c;
		if (a == 0 && b == 0 && c == 0)
		{
			break;
		}
		int d[200];
		for (int i = 0; i < a; i++)
		{
			cin >> d[i];
		}
		sort(d, d + a);
		for (int i = b; i <= c; i++)
		{
			if (d[a - i] - d[a - i - 1] >= e)
			{
				e = d[a - i] - d[a - i - 1];
				f = i;
			}
		}
		cout << f << endl;
	}
return 0;
}

C++: #include<vector>
#include<iostream>
#include<algorithm>
using namespace std;
vector<int>score(201);
int main() {
	int m, nmin, nmax;
	
	while (cin >> m >> nmin >> nmax, !(m == 0 && nmin == 0 && nmax == 0)) {
		
		for (int i = 0; i < m; i++) {
			cin >> score[i];
		}
		int ans=0;
		int s = 0;
		for (int i = nmin; i <= nmax; i++) {
			
			if (s < score[i ] - score[i+1]) {
				ans = max(ans,i);
				s = max(s, score[i ] - score[i+1]);
				
			}
		}
		cout << ans << endl;
	}
	return 0;
}

C++: #include <iostream>
#include <algorithm>
#define rep(i,n) for(int i=0;i<n;i++)
using namespace std;

int main(){
	int m,nmin,nmax;
	while(cin>>m>>nmin>>nmax and m>0){
		int p[m]; rep(i,m) cin>>p[i];
		sort(p,p+m); reverse(p,p+m);

		int ans=nmin,gap=0;
		for(int n=nmin-1;n<nmax;n++){
			if(p[n]-p[n+1]>=gap){
				gap=p[n]-p[n+1];
				ans=n+1;
			}
		}
		cout<<ans<<endl;
	}
	return 0;
}

C++: #include <iostream>
using namespace std;

int main(){
	while (true) {
		int m,nmin,nmax;
		cin>>m>>nmin>>nmax;

		if (m==0&&&nmin==0&&nmax==0) break;

		int P[200];
		for (int i = 0; i < m; i++) {
			cin>>P[i];
		}

		int gap=-1;
		int n=-1;

		for (int i = 0; i < m; i++) {
			int g=P[i-1]-P[i];

			if(gap<=g){
				gap=g;
				n=i;
			}
		}
		cout<<n<<endl;
	}
	return 0;
}

C++: #include <bits/stdc++.h>
#define MOD 1000000007LL
using namespace std;

typedef long long ll;
typedef pair<int,int> P;

int m,nmin,nmax;
int p[100001];

int main(void){
	while(1){
		scanf("%d%d%d",&m,&nmin,&nmax);
		if(m==0 && nmin==0 && nmax==0)break;
		for(int i=1;i<=m;i++){
			scanf("%d",&p[i]);
		}
		sort(p,p+m+1);
		int val=-1,res=-1;
		for(int i=nmin;i<=nmax;i++){
			if(p[m-i+1]-p[m-i]>=val){
				res=i;
				val=p[m-i+1]-p[m-i];
			}
		}
		printf("%d\n",res);
	}
	return 0;
}

C++: #include <bits/stdc++.h>

using namespace std;
using ll = long long;
using ld = long double;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define reps(i, s, n) for (int i = (int)(s); i < (int)(n); i++)
const ll mod = ll(1e9) + 7;
const int INF = int(1e9);
int main()
{
	vector<int> ans_list;
	while (1)
	{
		int m;
		cin >> m;
		int n_min, n_max;
		if (m == 0)
			break;
		cin >> n_min >> n_max;
		n_min--;
		n_max--;
		vector<int> p(m);
		for (int i = 0; i < m; i++)
		{
			cin >> p[i];
		}
		sort(p.begin(), p.end(), greater<int>());
		int ans = 0, gap = 0;
		for (int i = n_min; i <= n_max; i++)
		{
			if (gap <= p[i] - p[i + 1])
			{
				gap = p[i] - p[i + 1];
				ans = i + 1;
			}
		}
		ans_list.push_back(ans);
	}
	for (int i = 0; i < ans_list.size(); i++)
		cout << ans_list[i] << endl;

	return 0;
}