Language: C++

#include <stdio.h>
#include <iostream>
#include <vector>
#include <list>
#include <cmath>
#include <fstream>
#include <algorithm>
#include <string>
#include <queue>
#include <set>
#include <map>
#include <complex>
#include <iterator>
#include <cstdlib>
#include <cstring>
#include <sstream>

using namespace std;

#define EPS (1e-10)
#define EQ(a,b) (abs((a) - (b)) < EPS)
#define EQV(a,b) (EQ((a).real(),(b).real()) && EQ((a).imag(),(b).imag()))

typedef complex<double> P;
typedef long long ll;
const int INF=1000000000;

int n,m;
int a[1001];
int times[1001];
// »ÝÌBÌóâÒðT·
int searchBcand(int bound,int &aa){
    int minTime=INF;
    int cnt=0;
    int cnt2=0;
    int idx;
    for(int i = 0; i < bound; i++){
        if(minTime>times[i]){
            minTime=times[i];
            cnt=1;
            idx=i;
            cnt2=0;
        }
        else if(minTime==times[i]){
            // ±±ÅâèïÕxª¯¶¾Á½ç³çÉJEg
            if(a[i]<a[idx]){
                idx=i;
                cnt2=0;
            }
            else if(a[idx]==a[i]){
                cnt2++;
            }
        }
    }
    if(cnt2>=1){
        aa=idx;
        return -1;
    }
    return idx;
}

void solve(){

    while(cin>>n>>m&&!(n==0&&m==0)){

        for(int i = 0; i < n; i++)
            cin>>a[i];
        bool f=false;
        for(int i = 0; i < n; i++){
            // »Ý©½ÅAìÆÔªàÁÆà­È¢lÌlðT·B
            // àµ1lÈçÎA»ÌlæèâèÌïÕxª¯êÎA»ÌlÆ¯¶Ôðñ
            // »ÌlÆïÕxª¯¶ÈçA»ÌlÆ¯¶Ôðñ
            // ¬³¯êÎA»ÌlæèìÆÔðâ·B
            // âµÄàBâèSÉÈéÈçAÅåÜÅâµÄ¨­
            // ¡l¢éÌÅ êÎA»ÌlÆ¯¶ÔÉµÄ¨¯ÎA©ªÍIÎêÈ¢(B­)
            if(i==0){
                times[i]=(m/a[i])*a[i];
                continue;
            }
            // ßÌlðÝÄ²¸
            int aa=-1;
            int c=searchBcand(i,aa);
            if(c==-1)
                c=aa;
            // »ÌóâÒÉ¯È¢æ¤ÉÅ«é©`FbN
            // ÅåÌÔð
            int ntime=(times[c]/a[i]);
            if(times[c]%a[i]!=0)
                ntime++;
            // ÔðÝè
            ntime*=a[i];
            // Ýèµ½Ôª¯¶Èê
            if(ntime==times[c]){
                // ïÕxär
                if(a[c]<=a[i]){
                    times[i]=ntime;
                }
                else{
                    // à¤êiKÔðÕç·
                    ntime+=a[i];
                    // ±¦é©`FbN
                    if(ntime>m){
                        // z¦éÈçA¾ß
                        times[i]=ntime-a[i];
                    }
                    else{
                        times[i]=ntime;
                    }
                }
            }
            // Ýèµ½Ôª¯¶ÅÈ¢
            else{
                // ±¦é©`FbN
                if(ntime>m){
                    // z¦éÈçA¾ß
                    times[i]=ntime-a[i];
                }
                else{
                    times[i]=ntime;
                }
            }
        }
        // ±±Å
        if(!f){
            int tm;
            int c=searchBcand(n,tm);
            if(c==-1)
                cout<<n<<endl;
            else
                cout<<c+1<<endl;
        }
    }
}

Compiler output:
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/Scrt1.o: in function `_start':
(.text+0x17): undefined reference to `main'
collect2: error: ld returned 1 exit status