Untitled
unknown
plain_text
a year ago
1.1 kB
28
Indexable
#include <algorithm>
#include <numeric>
long optimizeTiktokWatchTime(int m, vector<int> initialWatch, vector<int> repeatWatch) {
int n = initialWatch.size();
vector<pair<int, int>> reels(n);
// Create a vector of pairs where each pair contains (repeatWatch[i], initial total time for the i-th reel)
for (int i = 0; i < n; ++i) {
reels[i] = {repeatWatch[i], initialWatch[i] + repeatWatch[i]};
}
// Sort by repeatWatch[i] since we want to prioritize reels with the smallest rewatch times.
sort(reels.begin(), reels.end());
// Calculate the initial watch time
long totalTime = 0;
for (int i = 0; i < n; ++i) {
totalTime += reels[i].second; // initial total time = initialWatch[i] + repeatWatch[i]
}
// We've already watched all n reels once, so we need m - n additional rewatchings
int remainingRewatches = m - n;
// Minimize time by rewatching reels with the smallest repeatWatch time
for (int i = 0; i < remainingRewatches; ++i) {
totalTime += reels[i % n].first; // rewatch time = repeatWatch[i]
}
return totalTime;
}Editor is loading...
Leave a Comment