Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- int main()
- {
- int n,k,time,i,j,max,ii,temp;
- int t[100],p[100],s[100],a[2][101];
- scanf("%d%d%d",&n,&k,&time);
- for(i=0; i < n; i++)
- scanf("%d",&t[i]);
- for(i=0; i < n; i++)
- scanf("%d",&p[i]);
- for(i=0; i < n; i++)
- scanf("%d",&s[i]);
- for(j=0; j <= k; j++)
- {
- a[0][j]=0;
- }
- for(i=0; i < n-1; i++)
- for(j=i+1; j < n; j++)
- if (t[i] > t[j])
- {
- temp=t[i];
- t[i]=t[j];
- t[j]=temp;
- temp=s[i];
- s[i]=s[j];
- s[j]=temp;
- temp=p[i];
- p[i]=p[j];
- p[j]=temp;
- }
- ii=1;temp=0;
- while (t[temp]==0)
- temp++;
- for(i=1; i <= time && temp < n; i++)
- {
- for(j=0; j <= k; j++)
- {
- a[ii][j]=0;
- if (j > 0 && a[1-ii][j-1] > a[ii][j]) a[ii][j]=a[1-ii][j-1];
- if (a[1-ii][j] > a[ii][j]) a[ii][j]=a[1-ii][j];
- if (j < k && a[1-ii][j+1] > a[ii][j]) a[ii][j]=a[1-ii][j+1];
- }
- while (temp<n&&t[temp]==i)
- {
- if(s[temp] <= i)
- a[ii][s[temp]]+=p[temp];
- temp++;
- }
- ii=1-ii;
- }
- max=0;
- for(i=0; i <= k;i++)
- if(max < a[1-ii][i]) max = a[1-ii][i];
- printf("%d\n",max);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement