CPP   139

hw3_adj.cpp

Guest on 23rd July 2021 10:25:45 AM

  1. #include <stdio.h>
  2. int a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,x,y,z;
  3. int aa[10005], bb[10005], cc[10005];
  4. int ua[10005], ub[10005], uc[10005];
  5. int A(int x1);
  6. int B(int x2);
  7. int C(int x3);
  8. int main()
  9. {      
  10.         scanf("%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f,&g,&h,&i,&j,&k,&l,&m,&n,&o,&p,&q,&r,&s,&t,&u,&v,&x,&y,&z);
  11.         for(i=0; i<n; i++)
  12.         {
  13.                 ua[i] = ub[i] = uc[i] = 0;
  14.         }
  15.         printf("%d %d %d\n",A(n),B(n),C(n));
  16.         scanf(" ");
  17.         return 0;      
  18. }
  19.  
  20. int A(int x1)
  21. {
  22.         if(ua[x1])
  23.         {
  24.                 return aa[x1];
  25.         }
  26.         ua[x1] = 1;
  27.         if(x1==1)
  28.         {
  29.                 return aa[x1]=x;       
  30.         }
  31.         else
  32.         {
  33.                 int temp1,temp2;
  34.                 temp2=2147483647;
  35.                 if(x1>2)
  36.                 {
  37.                         temp1=a*B(x1-2)+b*C(x1-1)+c;
  38.                         if(temp1<temp2)
  39.                         {
  40.                                 temp2=temp1;   
  41.                         }
  42.                 }      
  43.                 temp1=d*C(x1-1)+e;
  44.                 if(temp1<temp2)
  45.                 {
  46.                         temp2=temp1;   
  47.                 }
  48.                 temp1=f*A(x1-1)+g;
  49.                 if(temp1<temp2)
  50.                 {
  51.                         temp2=temp1;   
  52.                 }
  53.                 return aa[x1]=temp2;
  54.         }
  55. }
  56. int B(int x2)
  57. {
  58.         if(ub[x2])
  59.         {
  60.                 return bb[x2];
  61.         }
  62.         ub[x2] = 1;
  63.         if(x2==1)
  64.         {
  65.                 return bb[x2]=y;       
  66.         }
  67.         else
  68.         {
  69.                 int temp3,temp4;
  70.                 temp4=2147483647;
  71.                 if(x2>2)
  72.                 {
  73.                         temp3=h*C(x2-2)+i*A(x2-1)+j;
  74.                         if(temp3<temp4)
  75.                         {
  76.                                 temp4=temp3;   
  77.                         }
  78.                 }      
  79.                 temp3=k*C(x2-1)+l;
  80.                 if(temp3<temp4)
  81.                 {
  82.                         temp4=temp3;   
  83.                 }
  84.                 if(x2>2)
  85.                 {
  86.                         temp3=m*A(x2-2)+o;
  87.                         if(temp3<temp4)
  88.                         {
  89.                                 temp4=temp3;   
  90.                         }
  91.                 }
  92.                 return bb[x2]=temp4;
  93.         }
  94. }
  95. int C(int x3)
  96. {
  97.         if(uc[x3])
  98.         {
  99.                 return cc[x3];
  100.         }
  101.         uc[x3] = 1;
  102.         if(x3==1)
  103.         {
  104.                 return cc[x3]=z;       
  105.         }
  106.         else
  107.         {
  108.                 int temp5,temp6;
  109.                 temp6=2147483647;
  110.                 if(x3>3)
  111.                 {
  112.                         temp5=p*A(x3-3)+q*B(x3-1)+r;
  113.                         if(temp5<temp6)
  114.                         {
  115.                                 temp6=temp5;   
  116.                         }
  117.                 }      
  118.                 temp5=s*B(x3-1)+t;
  119.                 if(temp5<temp6)
  120.                 {
  121.                         temp6=temp5;   
  122.                 }
  123.                 if(x3>2)
  124.                 {
  125.                         temp5=u*C(x3-2)+v;
  126.                         if(temp5<temp6)
  127.                         {
  128.                                 temp6=temp5;   
  129.                         }
  130.                 }
  131.                 return cc[x3]=temp6;
  132.         }
  133. }

Raw Paste


Login or Register to edit or fork this paste. It's free.