听歌(song)
【问题描述】
小珊很喜欢音乐。一天,她把喜欢的n首歌加入了播放清单,每首歌长度为ai (1≤i≤n) 秒,小珊想知道第k秒时正在播放第几首歌?
【输入】
第一行2个整数 n,k;表示歌曲数量和提问的时间k;
第二行为n个整数,表示每首歌的长度。
【输出】
一个整数,表示题目中所提时间正在播放第几首歌。
【输入输出样例 1】
|
song.in |
song.out |
|
3 40 50 30 20 |
1 |
【输入输出样例 2】
|
song.in |
song.out |
|
3 80 50 30 20 |
2 |
【数据范围】
1≤n,ai≤10000;k不超所有歌曲总时间;
代码:
#include<bits/stdc++.h>
using namespace std;
int n,k,a[10000009],s[10000009],ans;
int main()
{
cin>>n>>k;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++)s[i]=s[i-1]+a[i];
for(int i=1;i<=n;i++)
{
if(k<=s[i])
{
ans=i;
break;
}
}
cout<<ans;
return 0;
}
用前缀和算出每首歌在几分钟后播放,再按时间段找出来。
该程序接收歌曲数量n和时间k,通过前缀和计算每首歌的结束时间,从而确定在给定时间k时正在播放的歌曲编号。
253

被折叠的 条评论
为什么被折叠?



