#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; } |
English