T1: 音乐盒
本题难度简单,\(T\) 可能很大,这样就需要转圈循环并会导致超时,可以先将 \(T\) 对所有歌曲的总时间取模,再去遍历一遍歌曲即可找到答案
代码实现
#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (n); ++i)
using namespace std;
using ll = long long;
int main() {
int n; ll T;
cin >> n >> T;
vector<ll> t(n);
rep(i, n) cin >> t[i];
ll s = 0;
rep(i, n) s += t[i];
T %= s;
if (T == 0) {
cout << n << '\n';
return 0;
}
rep(i, n) {
if (T <= t[i]) {
cout << i+1 << '\n';
return 0;
}
T -= t[i];
}
return 0;
}