codeforces 302 B. Eugeny and Play List

简介: 题目链接有n首歌,编号从1到n,每首歌播放时间为t,播放次数为c,n首歌按次序播放,有m个询问,输出第v分钟正在播放的歌曲编号。很简单的二分查找,直接贴代码。

题目链接

题目链接

有n首歌,编号从1到n,每首歌播放时间为t,播放次数为c,n首歌按次序播放,有m个询问,输出第v分钟正在播放的歌曲编号。

很简单的二分查找,直接贴代码。

//2013-05-23-20.26
#include <stdio.h>
#include <string.h>
using namespace std;
const int maxn = 100005;
int sum[maxn];
int binary_search(int l, int r, int v)
{
    int mid = (l+r)>>1;
    if (l == r)
        return l;
    if (v > sum[mid])
        return binary_search(mid+1, r, v);
    else
        return binary_search(l, mid, v);
}
int main()
{
    int n, m, c, t, v;
    //freopen("data.txt", "r", stdin);
    while (scanf("%d%d", &n, &m) != EOF)
    {
        memset(sum, 0, sizeof(sum));
        for (int i = 1; i <= n; i++)
        {
            scanf("%d %d", &c, &t);
            sum[i] = sum[i-1] + c*t;
        }
        while (m--)
        {
            scanf("%d", &v);
            printf("%d\n", binary_search(1, n, v));
        }
    }
    return 0;
}
目录
相关文章
|
6月前
杭电2095(find your present (2))
杭电2095(find your present (2))
34 0
light oj 1231-1232 - 1233- Coin Change 背包
暂时到半懂不懂也没办法讲明白,就不误人子弟了,直接贴代码了。
35 0
|
人工智能 算法
Codeforces #737Div2A. A. Ezzat and Two Subsequences(模拟)
Codeforces #737Div2A. A. Ezzat and Two Subsequences(模拟)
50 0
LeetCode contest 200 5476. 找出数组游戏的赢家 Find the Winner of an Array Game
LeetCode contest 200 5476. 找出数组游戏的赢家 Find the Winner of an Array Game
AtCoder Beginner Contest 225 F.String Cards(dp)
AtCoder Beginner Contest 225 F.String Cards(dp)
90 0