CodeStar2023年春第2周周赛普及奠基组

发布时间 2023-03-31 00:11:44作者: V_Melville

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;
}