rendered paste body#include <stdio.h>#include <stdlib.h>int n,k;long* dp;long* inp;long len;int compare(const void* a,const void* b){ if(*((long*)a) < *((long*)b)) return 1; else if(*((long*)a) > *((long*)b)) return -1; else return 0;}void init(){ long i = 0; for(i = 1;i <= len;i++) dp[i] = inp[0]/i;}long findans(){ qsort(inp,n,sizeof(long),compare); if(k > inp[0]) return 0; init(); int i = 0; long j = 0; for(i = 1;i < n;i++) for(j = inp[i];j > 0;j--) dp[j] += (inp[i]/j); for(j = len;j > 0;j--) if(dp[j] == k) return j; return 0;}int main(){ scanf("%d %d",&n,&k); inp = new long[n]; int i = 0; long max; scanf("%ld",&inp[0]); max = inp[0]; for(i = 1;i < n;i++) { scanf("%ld",&inp[i]); if(max < inp[i]) max = inp[i]; } dp = new long[max+1]; len = max; long ans = findans(); printf("%ld",ans); return 0;}