H

小L的数组

https://ac.nowcoder.com/acm/contest/120566/H

若出现脚后跟位置<缝隙位置<脚尖位置,则输出YES,否则NO,每个缝隙位置可用前缀和存入一个新的数组,通过双指针i,j,i用来遍历脚后跟位置,j用来遍历所有缝隙,对于每个i,找到大于i的j,并且检查i+l是否>j若成立,则直接YES并且return 0,反之找不到便输出NO。

#include<bits/stdc++.h>
using namespace std;
int main(){
   int n,m;
   long long l;
   cin>>n>>m>>l;
   long long sum=0;
   vector<long long> dp;
   vector<long long> x(n);
   for(int i=0;i<n;i++){
     cin>>x[i];
     sum+=x[i];
     dp.push_back(sum);
   }
   vector<long long> y(m);
   for(int i=0;i<m;i++){
      cin>>y[i];
   }
   long long p=0;
   int j=0;
   while(j<dp.size() && dp[j]<p){
     j++;
   }
   if(j<dp.size() && dp[j]>p && dp[j]<p+l){
      cout<<"YES";
      return 0;
   } 
   for(int i=0;i<m;i++){
     p+=y[i];
     while(j<dp.size() && dp[j]<p){
     j++;
   }
   if(j<dp.size() && dp[j]>p && dp[j]<p+l){
      cout<<"YES";
      return 0;
   }    
  }
   cout<<"NO";
   return 0;
}

全部评论

相关推荐

2025-12-28 20:47
已编辑
北京工商大学 Java
程序员牛肉:我靠你这个实习经历其实最需要担心的点是你做的太多了,可能会被面试官怀疑是你伪造的。 交易状态机是你做的,支付多渠道是你做的,对账是你做的,结算还是你做的,重复支付也是你做的,整个服务的异常处理也是你做的。 其实你这个反而问题很大的,你想想站在面试官的角度,他是真的会相信你的能力很强,还是相信这份实习你伪造了大部分?我相信你真的做了这么多,但是删一些,废话删一删。你这个做的太多了反而真实性不可信。 后面再补一个项目,在github上找一个高star的项目学一学然后写到自己简历上。我觉得你能力肯定没问题。28届能做到这个份上很厉害,但是在求职市场中,你不是在跟28届的同学比,把你这个简历放到27届其实也就一般水平。 所以后续要想一想看看能不能给自己简历上搞点亮点,比如开源贡献呢?比如博客呢?
实习要如何选择和准备?
点赞 评论 收藏
分享
01-02 20:08
马鞍山学院 Java
27届学院本誓死冲击...:实习经历最好写上做了什么项目,负责什么业务,否则有点假
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务