爱奇艺编程题:空中旅行

题目:https://www.nowcoder.com/practice/cc929a2ed85f4f49b834e6e301fba77b?tpId=90&tqId=30792&tPage=1&rp=1&ru=/ta/2018test&qru=/ta/2018test/question-ranking

#include <bits/stdc++.h>

using namespace std;

int func(vector<int> &num,int s){

if(num[0] > s)

return 0;

int n = num.size();

vector<int> dp(n + 1,0);

dp[1] =  num[0];

for(auto i = 2;i<n+1;++i)

dp[i] = dp[i-1] + num[i-1];

for(auto i = 1;i < n+1;++i){

if(dp[i] <= s && dp[i+1] > s)

return i;

}

return n;

}

int main(){

int n,s;

while(cin >> n >> s){

vector<int> num(n);

for(auto i = 0;i < n;++i)

cin>>num[i];

cout<<func(num,s)<<endl;

}

return 0;

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容