1 #include <algorithm> 2 #include <cstdio> 3 4 struct jer{ 5 int l,v; 6 }a[200002]; 7 8 int n,t,k,ans; 9 #define max(x,y) (x>y?x:y) 10 11 bool cmp(jer x,jer y){ 12 return x.l<y.l; 13 } 14 15 int main(void){ 16 scanf("%d%d%d",&n,&t,&k); 17 for(int i=1;i<=n;++i) 18 scanf("%d",&a[i].l); 19 for(int i=1;i<=n;++i) 20 scanf("%d",&a[i].v); 21 std::sort(a+1,a+n+1,cmp); 22 for(int i=1;i<=n;++i){ 23 a[i+n].l=a[i].l+t; 24 a[i+n].v=a[i].v; 25 } 26 for(int i=1;i<=n;++i){ 27 int tot=a[i].v; 28 int j=i+1; 29 while(a[j].l-a[i].l<=k){ 30 tot+=a[j].v; 31 ++j; 32 } 33 ans=max(ans,tot); 34 } 35 printf("%d",ans); 36 }
【宁波市第23届中小学生计算机程序设计竞赛(初中组)T2】宝石(贪心)
原文:https://www.cnblogs.com/gzh01/p/9374784.html