Advertisement
Guest User

Ганстеры

a guest
May 21st, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.39 KB | None | 0 0
  1. #include <stdio.h>
  2. int main()
  3. {
  4.     int n,k,time,i,j,max,ii,temp;
  5.     int t[100],p[100],s[100],a[2][101];
  6.     scanf("%d%d%d",&n,&k,&time);
  7.     for(i=0; i < n; i++)
  8.         scanf("%d",&t[i]);
  9.     for(i=0; i < n; i++)
  10.         scanf("%d",&p[i]);
  11.     for(i=0; i < n; i++)
  12.         scanf("%d",&s[i]);
  13.     for(j=0; j <= k; j++)
  14.     {
  15.         a[0][j]=0;
  16.     }
  17.     for(i=0; i < n-1; i++)
  18.         for(j=i+1; j < n; j++)
  19.             if (t[i] > t[j])
  20.             {
  21.                 temp=t[i];
  22.                 t[i]=t[j];
  23.                 t[j]=temp;
  24.                 temp=s[i];
  25.                 s[i]=s[j];
  26.                 s[j]=temp;
  27.                 temp=p[i];
  28.                 p[i]=p[j];
  29.                 p[j]=temp;
  30.             }
  31.     ii=1;temp=0;
  32.     while (t[temp]==0)
  33.         temp++;
  34.     for(i=1; i <= time && temp < n; i++)
  35.     {
  36.         for(j=0; j <= k; j++)
  37.         {
  38.             a[ii][j]=0;
  39.             if (j > 0 && a[1-ii][j-1] > a[ii][j]) a[ii][j]=a[1-ii][j-1];
  40.             if (a[1-ii][j] > a[ii][j]) a[ii][j]=a[1-ii][j];
  41.             if (j < k && a[1-ii][j+1] > a[ii][j]) a[ii][j]=a[1-ii][j+1];
  42.         }
  43.         while (temp<n&&t[temp]==i)
  44.         {
  45.             if(s[temp] <= i)
  46.                 a[ii][s[temp]]+=p[temp];
  47.             temp++;
  48.         }
  49.         ii=1-ii;
  50.     }
  51.     max=0;
  52.     for(i=0; i <= k;i++)
  53.         if(max < a[1-ii][i]) max = a[1-ii][i];
  54.    printf("%d\n",max);
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement