On Mon, 26 Oct 2015 11:20:03 +0100, Rosario19 <R...@invalid.invalid>
wrote:
#include <iostream.h>
#include <stdlib.h>
#define u8 unsigned char
#define i8 signed char
#define u16 unsigned short
#define i16 signed short
#define u32 unsigned
#define i32 int
#define f64 double
#define P printf
#define R return
#define F for
#define GG(a,b) if(a)goto b
#define G goto
#define S sizeof
#define SA(a) (sizeof(a)/(sizeof a[0]))
#define ooo cout
#define FE(a,b) for(a=0; a<(b).len; ++a)
#define FC(b) for(unsigned indiceloc=0; indiceloc<(b).len;
++indiceloc)
size=0; len =0; ele=0; va=0;
i=o.ele? o.len: 10;
va =(T*)MM(i*S(T));
if(va==0){ele=1; e=1; R;}
if(i!=o.len)
{size=10;
ele =1; e=1;
FE(i,a) va[i]=
a.va[i];
len=i;
z: R *this;
}
u32 assign(T* a, u32 c)
{u32 j;
T *p;
if(c>=size)
{if(c>=0xFFFFFE00)
R -1;
p=(T*) realloc(va, c*S(T));
if(p==0) R -1;
va=p; size=c;
}
F(j=0; j<c; ++j) va[j]=a[j];
len=c;
R 0;
}
friend ostream& operator<<(ostream& ost, V<T>& m)
{u32 c;
if(m.ele) ost<<"{vector error}";
else FE(c,m){if(c==0) ost<<"{";
ost<<m[c]<< (c+1!= m.len? ", ": "}");
}
R ost;
}
u32 size;
u32 len;
T *va;
u32 ele; // element error
static T meno1; // element error1
static u32 e; // class error
};
template<class T> u32 V<T>::e=0;
template<class T> T V<T>::meno1=(T)-1;
//81
f(V<i32>*a,i32 m,i32 b){i32
r=0,*p=a->va;FC(*a){r+=*p;*p++=r=(r<m?m:(r>b?b:r));}}
int main(void)
{i32 v1[]={1, 4, 3, -10, 3, 2, 2, 5, -4},
v2[]={1, 1, 1, 1, 1, 1},
v3[]={10, -4, -3, 2},
v4[]={3, 5, -2, 1},
v5[]={1, 4, 6};
i32 upper_lim;
i32 lower_lim;
V<i32> org;
upper_lim = 6;
lower_lim = -2;
org.assign(v1, SA(v1));
ooo<<"input ="<<org<<"\n";
f(&org, lower_lim, upper_lim);
ooo<<"output="<<org<<"\n";
ooo<<"result=[1 5 6 -2 1 3 5 6 2]\n";
upper_lim = 100;
lower_lim = -100;
org.assign(v2, SA(v2));
ooo<<"input ="<<org<<"\n";
f(&org, lower_lim, upper_lim);
ooo<<"output="<<org<<"\n";
ooo<<"result=[1 2 3 4 5 6]\n";
upper_lim = 5;
lower_lim = 0;
org.assign(v3, SA(v3));
ooo<<"input ="<<org<<"\n";
f(&org, lower_lim, upper_lim);
ooo<<"output="<<org<<"\n";
ooo<<"result=[5 1 0 2]\n";
upper_lim = 0;
lower_lim = 0;
org.assign(v4, SA(v4));
ooo<<"input ="<<org<<"\n";
f(&org, lower_lim, upper_lim);
ooo<<"output="<<org<<"\n";
ooo<<"result=[0 0 0 0]\n";
upper_lim = 10;
lower_lim = 5;
org.assign(v5, SA(v5));
ooo<<"input ="<<org<<"\n";
f(&org, lower_lim, upper_lim);
ooo<<"output="<<org<<"\n";
ooo<<"result=[5 9 10]\n";
R 0;
}
---------
input ={1, 4, 3, -10, 3, 2, 2, 5, -4}
output={1, 5, 6, -2, 1, 3, 5, 6, 2}
result=[1 5 6 -2 1 3 5 6 2]
input ={1, 1, 1, 1, 1, 1}
output={1, 2, 3, 4, 5, 6}
result=[1 2 3 4 5 6]
input ={10, -4, -3, 2}
output={5, 1, 0, 2}
result=[5 1 0 2]
input ={3, 5, -2, 1}
output={0, 0, 0, 0}
result=[0 0 0 0]
input ={1, 4, 6}
output={5, 9, 10}
result=[5 9 10]