#include <stdio.h> #include "string.h" long long int sfun(int *bb,int b,long long int x) { long long int sum=0; for(int i=0;i<b;i++) sum+=(x-1+bb[i])/bb[i]; return sum; } int main() { int t; scanf("%d",&t); while(t--) { int b,n,bb[1005]; long long int left,right; scanf("%d%d",&b,&n); for(int i=0;i<b;i++) scanf("%d",&bb[i]); left=0;right=n*100005; while(left<right) { long long int middle=left+right>>1; if(sfun(bb,b,middle)<n) left=middle+1; else right=middle; } long long int temp=sfun(bb,b,left-1); int ans=0; for(int i=0;i<b;i++) { if((left-1)%bb[i]==0) { temp++; if(temp==n) { ans=i+1; break; } } } static int leap=1; printf("Case #%d: %d\n",leap++,ans); } } |
Double click to view unformatted code.