#include <iostream> using namespace std; int main() { int n,k,*tab,*ile; cin>>n>>k; int N=(n*(n+1)/2); tab=new int [N]; for (int i=0;i<N;i++) cin>>tab[i]; int min=2019,W=0,d=1,indeks=0,I=0,p=1,PROG=0,prog; bool torf=1; for (int pocz=0;pocz<N;pocz+=(W+=4)) { I++; indeks=pocz; PROG+=3+(I-2)*2; prog=PROG; //cout<<"3+(I-2)*2 = <k "<<prog<<" < "<<k<<endl; while(prog<=k && indeks<N) { if (tab[indeks]<min) min=tab[indeks]; //cout<<indeks<<". tab[]="<<tab[indeks]<<"min="<<min<<endl; if (torf){ // cout<<indeks<<". tab[]="<<tab[indeks]<<"+=d - "<<d<<endl; indeks+=d; torf=0; prog+=I; } else{ // cout<<indeks<<". tab[]="<<tab[indeks]<<"+=p - "<<p<<endl; indeks+=p; torf=1; p++; } // cout<<"prog="<<prog<<endl; } d+=2; p=1; torf=1; } cout<<min; 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 | #include <iostream> using namespace std; int main() { int n,k,*tab,*ile; cin>>n>>k; int N=(n*(n+1)/2); tab=new int [N]; for (int i=0;i<N;i++) cin>>tab[i]; int min=2019,W=0,d=1,indeks=0,I=0,p=1,PROG=0,prog; bool torf=1; for (int pocz=0;pocz<N;pocz+=(W+=4)) { I++; indeks=pocz; PROG+=3+(I-2)*2; prog=PROG; //cout<<"3+(I-2)*2 = <k "<<prog<<" < "<<k<<endl; while(prog<=k && indeks<N) { if (tab[indeks]<min) min=tab[indeks]; //cout<<indeks<<". tab[]="<<tab[indeks]<<"min="<<min<<endl; if (torf){ // cout<<indeks<<". tab[]="<<tab[indeks]<<"+=d - "<<d<<endl; indeks+=d; torf=0; prog+=I; } else{ // cout<<indeks<<". tab[]="<<tab[indeks]<<"+=p - "<<p<<endl; indeks+=p; torf=1; p++; } // cout<<"prog="<<prog<<endl; } d+=2; p=1; torf=1; } cout<<min; return 0; } |