zoukankan      html  css  js  c++  java
  • 巧克力

      

    Eat Chocolate

    一天,DB小公主把n块不同大小的巧克力送给了HY和SMZ,HY和SMZ决定玩一场游戏。他们把这n块巧克力排成一条线放在桌子上,之后HY从左向右开始一个一个地吃巧克力,而SMZ则从右向左吃。假设他们吃巧克力的速度是一样的,并且速度是1g/s。当然两个人是不能同时吃同一块巧克力的,假设遇到这种情况,SMZ会把这块巧克力让给HY。

    现在从左向右给出这n块巧克力的重量,问到最后两个人分别吃了多少块巧克力。

     

    Input

    输入包括两行,第一行是一个整数n(1 ≤ n ≤ 105)---代表巧克力的数目。

    第二行包含n个数,分别为从左到右每块巧克力的重量,每块巧克力的重量不超过10g。

    Output

    分别输出两个人最后吃的巧克力的数目,用空格分开。

    Sample_input

    5

    2 9 8 2 7

    Sample_output

    2 3

     

    题解代码:

    #include <iostream>
    #include <cstdio>
    using namespace std;

    int nt[100010];

    int main()
    {
    //freopen("g:data.in","r",stdin);
    //freopen("g:data.out","w",stdout);
    int n;
    while(scanf("%d",&n)!=EOF)
    {
    for(int i=1;i<=n;i++)
    {
    scanf("%d",&nt[i]);
    }
    if(n==1)
    {
    printf("1 0 ");
    continue;
    }
    int sl=nt[1],sr=nt[n],l=1,r=n;
    while(l+1!=r)
    {
    if(sl<=sr)
    {
    l++;
    sl+=nt[l];
    }
    else
    {
    r--;
    sr+=nt[r];
    }
    }
    printf("%d %d ",l,n-l);
    }
    return 0;
    }

    我的代码:(我的代码oj过不了)

    #include <iostream>
    #include <stdio.h>
    using namespace std;

    int a[10010];

    int main()
    {
    int n,i;
    while(cin>>n)
    {
    for(i=0;i<n;i++)
    scanf("%d",&a[i]);
    if(n==1)
    {
    cout<<"1 0"<<endl;
    }
    else
    {
    int x=0;
    int y=n-1;
    int sum1=a[0];
    int sum2=a[n-1];
    while((x+1)!=y)
    {
    if(sum1<=sum2)
    {
    x++;
    sum1+=a[x];
    }
    else
    {
    y--;
    sum2+=a[y];
    }

    }
    cout<<x+1<<" "<<n-x-1<<endl;
    }
    }
    return 0;
    }

  • 相关阅读:
    防火墙2
    SVN:多版本库环境的搭建
    安装SVN服务端
    springContext
    linux centos7安装 mysql-5.7.11
    ajax struts2 前后台 交互
    Spring的 classpath 通配符加载配置文件
    使用甘特图实现服务计划的可视化
    条形码软件开发包Dynamic .NET TWAIN v5.0提供WPF功能
    快来玩“Gift大转盘”百分百赚好礼
  • 原文地址:https://www.cnblogs.com/chen9510/p/4705524.html
Copyright © 2011-2022 走看看