侧边栏壁纸
  • 累计撰写 192 篇文章
  • 累计创建 2 个标签
  • 累计收到 87 条评论

【题解】【上海】【循环播放】

Allen Best
2023-08-02 / 0 评论 / 0 点赞 / 82 阅读 / 425 字
温馨提示:
本文最后更新于 2023-08-02,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

#include <bits/stdc++.h>
using namespace std;
long long n, i, t[100005], ti, sum = 0;

int main() {
cin >> n;
for (i = 1; i <= n; i++) {
cin >> t[i];
}
cin >> ti;
for (i = 1; i <= n; i++) {
sum += t[i];
if (sum >= ti) {
cout << i;//对于超出t的部分 则说明歌曲时间总长sum比总时间t还长 那么说明路程结束了歌曲没播完 输出i即是答案,如果继续累加,结果会超long long
return 0;
}
}
ti %= sum;
if (ti == 0)
cout << n;//正好是第n首歌
else
for (i = 1; i <= n; i++) {
ti -= t[i];//总时长,超过第几首歌
if (ti <= 0) {
cout << i;
return 0;
}
}
return 0;
}

0

评论区