1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include<bits/stdc++.h>
using namespace std;
int arr[2001008];
int main(){
    	int n, k, but, tmp, poziomy=1, na_uczte; scanf("%d%d",&n,&k);
	    tmp=k;
	
		but=(n*(n+1))/2;
		for(int i=0;i<but;i++){
	    	scanf("%d",&arr[i]);
    	}
    	
    	if(n%2==0){
    	    tmp-=2;
    	    poziomy+=(tmp/2);
    	    poziomy++;
    	}
    	
    	else{
    		tmp--;
    		poziomy+=(tmp/2);
		}
		
		na_uczte=(poziomy*(poziomy+1))/2;
		int min1=arr[0];
		for(int i=1;i<na_uczte;i++){
			min1=min(min1,arr[i]);
		}
	
		//
		int granica=min(k,n);
    	int min2=arr[0];
    	int m=1,j=1;
    	for(int i=1;i<granica;i++){
    		min2=min(min2,arr[j]);
    		j+=m; m++; 
			min2=min(min2,arr[j]);
			j++;
    		
		}
		//

		min1=min(min1,min2);
		printf("%d",min1);
		
	
	return 0;
}