Milk Sales S

[语言月赛202303] Milk Sales S

题目描述

Farmer John 正在售卖两款牛奶,分别为 A 型牛奶和 B 型牛奶。

Farmer John 已经售卖了 n n n 个月这两种牛奶,得到了一份数据 a 1 , a 2 , ⋯ a n a _ 1, a _ 2, \cdots a _ n a1,a2,an b 1 , b 2 , ⋯   , b n b _ 1, b _ 2, \cdots, b _ n b1,b2,,bn,分别代表 A、B 型牛奶每个月的销量。

其中, a i a _ i ai 代表 A 型牛奶第 i i i 个月的销量, b i b _ i bi 代表 B 型牛奶分别的销量,二者单位均为盒。

现在,Farmer John 想要知道,在这 n n n 个月中,在最少经过几个月后,B 型牛奶的累计售出的盒数超过 A 型牛奶累计售出的盒数。

形式化的讲,请你求出最小的 x x x,使 ∑ i = 1 x a i < ∑ i = 1 x b i \sum \limits _{i=1}^x a_i<\sum \limits _{i=1}^x b_i i=1xai<i=1xbi

输入格式

输入共三行。

第一行为一个整数 n n n,代表 Farmer John 售卖牛奶的月份数。

第二行为 n n n 个整数 a 1 , a 2 , ⋯   , a n a _ 1, a _ 2, \cdots, a _ n a1,a2,,an,分别代表这 n n n 个月中 A 型牛奶每个月的销量(单位为盒)。

第三行为 n n n 个整数 b 1 , b 2 , ⋯   , b n b _ 1, b _ 2, \cdots, b _ n b1,b2,,bn,分别代表这 n n n 个月中 B 型牛奶每个月的销量(单位为盒)。

输出格式

输出共一行一个整数 x x x,代表在最少经过 x x x 个月后,B 型牛奶的累计售出的盒数超过 A 型牛奶累计售出的盒数。

样例 #1

样例输入 #1

4
3 7 2 9
2 8 3 17

样例输出 #1

3

提示说明

样例 1 解释

在这 4 4 4 个月中,A、B 型牛奶的售卖情况如下表所示:

月份A 型牛奶累计销量B 型牛奶累计销量B 型累计销量是否超过 A 型
1 1 1 3 3 3 2 2 2
2 2 2 10 10 10 10 10 10
3 3 3 12 12 12 13 13 13
4 4 4 21 21 21 30 30 30

最早经过 3 3 3 个月后,B 型牛奶的累计售出的盒数超过 A 型牛奶累计售出的盒数。

数据规模与约定

对于 100 % 100\% 100% 的数据,保证 1 ≤ n ≤ 1 0 5 1 \leq n \leq 10 ^ 5 1n105 1 ≤ a i , b i ≤ 1 0 9 1 \leq a_i,b_i \leq 10 ^ 9 1ai,bi109 ,保证存在至少一个 x ∈ [ 1 , n ] x \in [1, n] x[1,n] 使得 ∑ i = 1 x a i < ∑ i = 1 x b i \sum \limits _{i=1}^x a_i<\sum \limits _{i=1}^x b_i i=1xai<i=1xbi

测试点编号 n n n a i , b i a_i,b_i ai,bi特殊性质
1 ∼ 2 1 \sim 2 12 ≤ 10 \leq 10 10 ≤ 100 \leq 100 100
3 ∼ 5 3 \sim 5 35 ≤ 5 × 1 0 3 \leq 5 \times 10 ^ 3 5×103 ≤ 1 0 5 \leq 10 ^ 5 105
6 ∼ 7 6 \sim 7 67 ≤ 1 0 5 \leq 10 ^ 5 105 ≤ 1 0 9 \leq 10 ^ 9 109保证 a 1 < b 1 a _ 1 < b _ 1 a1<b1
8 ∼ 10 8 \sim 10 810 ≤ 1 0 5 \leq 10 ^ 5 105 ≤ 1 0 9 \leq 10 ^ 9 109

代码内容

// #include <iostream>
// #include <vector>//容器,存数组的数,表数组的长度
#include <bits/stdc++.h>

using namespace std;
typedef long long ll;

const ll N=1e5+10;
ll a[N],b[N];

int main()
{
    ll n;
    cin>>n;

    ll numa,numb;
    numa=numb=0;

    for(ll i=0;i<n;i++)
        cin>>a[i];
    for(ll i=0;i<n;i++)
        cin>>b[i];

    ll x;
    for(ll i=0;i<n;i++)
    {
        numa+=a[i];
        numb+=b[i];
        if(numb>numa)
        {
            x=i+1;
            break;
        }
    }

    cout<<x<<endl;
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pretty Boy Fox

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值