RUPC (Ritsumeikan University Programming Contest) 2011 Problem B Problem B

問題

日本語なので本文参照。(http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2282

方針

シミュレートする。

ソースコード

int n,m,a[1000];
int main()
{
	while(cin>>n>>m,n){
		rep(i,n)cin>>a[i];
		int t=inf, d=0, ans=-1;
		
		rep(i,n-1){
			for(int j=0;j*a[i]<=m;j++){
				if(t<j*a[i]||t==j*a[i]&&d<=a[i]){
					
					if(t==j*a[i]&&d==a[i])ans=n-1;
					goto NEXT;
				}
			}
			t=m/a[i]*a[i]; d=a[i];
			ans=i;
			NEXT:;
		}
		
		if(ans!=n-1){
			for(int j=0;j*a[n-1]<=m;j++){
				if(t<j*a[n-1]||t==j*a[n-1]&&d<a[n-1]){
					goto END;
				}
			}
			ans=n-1;
			END:;
		}
		cout<<ans+1<<endl;
	}
	return 0;
}