#include<iostream> #include<stdio.h> #include<string> #include<cstdlib> #include<math.h> #include<vector> #define prt(a) printf("%d\n",a); #define aaa printf("a\n"); #define bbb printf("b\n"); #define ccc printf("c\n"); using namespace std; int*d,ddl=0,dn; int o=0; void znajdz(int a,int b); int main() { scanf("%d",&dn); ddl=dn; d=new int[ddl]; for(int*w=d;w<d+ddl;w++) scanf("%d",w); int*buf=d; o=*d; for(int*w=d;w<d+ddl;w++) if(*w>o) { o=*w; buf=w; } *buf=-1; dn--; znajdz(o,1); prt(o) delete[]d; return 0; } void znajdz(int a,int b) { for(int*w=d;w<d+ddl;w++) if(*w==a) { *w=-1; dn--; b--; if(b==0) return znajdz(++o,1); } if((b+b<=dn)&&(a>0)) return znajdz(--a,b+b); }
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 | #include<iostream> #include<stdio.h> #include<string> #include<cstdlib> #include<math.h> #include<vector> #define prt(a) printf("%d\n",a); #define aaa printf("a\n"); #define bbb printf("b\n"); #define ccc printf("c\n"); using namespace std; int*d,ddl=0,dn; int o=0; void znajdz(int a,int b); int main() { scanf("%d",&dn); ddl=dn; d=new int[ddl]; for(int*w=d;w<d+ddl;w++) scanf("%d",w); int*buf=d; o=*d; for(int*w=d;w<d+ddl;w++) if(*w>o) { o=*w; buf=w; } *buf=-1; dn--; znajdz(o,1); prt(o) delete[]d; return 0; } void znajdz(int a,int b) { for(int*w=d;w<d+ddl;w++) if(*w==a) { *w=-1; dn--; b--; if(b==0) return znajdz(++o,1); } if((b+b<=dn)&&(a>0)) return znajdz(--a,b+b); } |