Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- using namespace std;
- #define print(n) printf("%d\n",n)
- #define f(x,n) for(int x = 0; x < n; ++x)
- #define f1(x,n) for(int x = 1; x < n; ++x)
- #define len(arr) *(&arr + 1) - arr
- #define scanv(n,vec) f(i,n){scanf("%d",vec+i);}
- #define printv(vec) f(i,len(vec)){printf("%d ",vec[i]);} printf("\n");
- #define printmat(mat) f(i,mat.size()){f(j,mat[i].size()){printf("%d ",mat[i][j]);}printf("\n");}
- #define sum(v,aux) f(i,5){aux += v[i]+1;}
- #define prod(v,aux) f(i,5){aux*=v[i];}
- #include <math.h>
- #include <vector>
- int main() {
- int max_dims = 5;
- int d = 0;
- scanf("%d",&d);
- int dims[max_dims];
- f(i,5){ dims[i] = 1;};
- scanv(d,dims);
- int mtx_vec_size = 1;
- prod(dims,mtx_vec_size);
- int mtx[mtx_vec_size];
- scanv(mtx_vec_size,mtx);
- int matriz[dims[0]+1][dims[1]+1][dims[2]+1][dims[3]+1][dims[4]+1];
- int m2[dims[0]+1][dims[1]+1][dims[2]+1][dims[3]+1][dims[4]+1];
- int pos = 0;
- f(i0,dims[0]+1){
- f(i1,dims[1]+1){
- f(i2,dims[2]+1){
- f(i3,dims[3]+1){
- f(i4,dims[4]+1){
- m2[i0][i1][i2][i3][i4] = 0;
- if (i0 == 0 || i1 == 0 || i2==0 || i3==0 || i4 == 0){
- matriz[i0][i1][i2][i3][i4] = 0;
- }else{
- matriz[i0][i1][i2][i3][i4] = mtx[pos];
- pos++;
- }
- }
- }
- }
- }
- }
- int suma = 0;
- int exponente = 0;
- f1(i0,dims[0]+1){
- f1(i1,dims[1]+1){
- f1(i2,dims[2]+1){
- f1(i3,dims[3]+1){
- f1(i4,dims[4]+1){
- m2[i0][i1][i2][i3][i4] = matriz[i0][i1][i2][i3][i4];
- f(j0,2){
- f(j1,2){
- f(j2,2){
- f(j3,2){
- f(j4,2){
- suma = j0+j1+j2+j3+j4;
- if (suma != 5){
- exponente = (5 + suma)%2;
- m2[i0][i1][i2][i3][i4] += ((exponente*2)-1)*m2[i0+j0-1][i1+j1-1][i2+j2-1][i3+j3-1][i4+j4-1];
- }
- }}}}}
- }}}}}
- int t=0;
- scanf("%d",&t);
- f(test,t){
- int res=0;
- int desde[max_dims];
- f(i,max_dims){ desde[i] = 1;};
- scanv(d,desde);
- int hasta[max_dims];
- f(i,max_dims){ hasta[i] = 1;};
- scanv(d,hasta);
- int ambos[10];
- f(i,max_dims){ ambos[i] = desde[i]-1;};
- f(i,max_dims){ ambos[i+5] = hasta[i];};
- f(j0,2){
- f(j1,2){
- f(j2,2){
- f(j3,2){
- f(j4,2){
- int exponente = (4+ j0+j1+j2+j3+j4)%2;
- int x0 = ambos[j0*5+0] ;
- int x1 = ambos[j1*5+1] ;
- int x2 = ambos[j2*5+2] ;
- int x3 = ambos[j3*5+3] ;
- int x4 = ambos[j4*5+4] ;
- res += m2[x0][x1][x2][x3][x4] * ((exponente*2)-1);
- }}}}}
- printf("%d\n",res);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement