#include<iostream> #include<vector> using namespace std; struct ind { long long w; long long a; }; long long mini=9999999999999; ind tab[2000*(2001)/2+1]; int main () { ios_base::sync_with_stdio(0); long long t; t=1; for(long long q=0 ; q<t ; q++) { long long n,k; cin>>n>>k; long long x; long long y=1; for(long long i=0,j=0 ; i<n*(n+1)/2 ; i++) { cin>>x; if(i==0)tab[i].a=1; else if(j==0 || j==y-1) { if(j==y-1)tab[i].a=tab[i-y].a+1; else if(j==0) tab[i].a=tab[i-y+1].a+1; tab[i].w=tab[i].a; } else { tab[i].a=tab[i-y].a+tab[i-y].w; tab[i].w=tab[i-y].w; } if(x<mini && tab[i].a<=k)mini=x; j++; if(j==y) { y++; j=0; } } cout<<mini<<endl; mini=999999999999; } return 0; }
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 49 50 51 52 | #include<iostream> #include<vector> using namespace std; struct ind { long long w; long long a; }; long long mini=9999999999999; ind tab[2000*(2001)/2+1]; int main () { ios_base::sync_with_stdio(0); long long t; t=1; for(long long q=0 ; q<t ; q++) { long long n,k; cin>>n>>k; long long x; long long y=1; for(long long i=0,j=0 ; i<n*(n+1)/2 ; i++) { cin>>x; if(i==0)tab[i].a=1; else if(j==0 || j==y-1) { if(j==y-1)tab[i].a=tab[i-y].a+1; else if(j==0) tab[i].a=tab[i-y+1].a+1; tab[i].w=tab[i].a; } else { tab[i].a=tab[i-y].a+tab[i-y].w; tab[i].w=tab[i-y].w; } if(x<mini && tab[i].a<=k)mini=x; j++; if(j==y) { y++; j=0; } } cout<<mini<<endl; mini=999999999999; } return 0; } |