zoukankan      html  css  js  c++  java
  • 1036. 二哥去取钱

    Description

    二哥来到一家银行。这家银行有3个柜台。二哥对银行的排队方式产生了兴趣。传统的排队方式是所有人都在柜台前排队,每个人进入银行后挑一个人数最少的队伍排上,要是人数一样,他会排那个柜台编号靠前的。

    新的排队方式是每个人进入银行后只排一个队伍,一旦某个柜台有空,队伍最前的人就过去。

    现在有N(N<100000)

    个人在第0时刻里按照顺序进入了银行,并知道每个人的柜台占用时间。请计算两种排队方式下所有顾客等待时间的和及最后一个人处理完的时间。

    Input Format

    N,代表要进入银行的人数

    a[1]...a[n],a[i]代表第i个人要占用柜台的时间

    Output Format

    W1 T1,分别代表老排队方式下所有顾客等待时间总和与最后一个人处理完的时刻

    W2 T2,分别代表新排队方式下所有顾客等待时间总和与最后一个人处理完的时刻

    Sample Input

    4
    1 1 1 2
    

    Sample Output

    1 3
    1 3
    


    #include <iostream>  
    #include <stdio.h>  
    using namespace std;  
          
    int a[100000];  
    long long s[3]={0},sum[3]={0};  
    int minIndex(){  
        int t=(sum[1]<=sum[2]?1:2);  
        t=(sum[0]<=sum[t]?0:t);  
        return t;  
    }  
    long long max(long long a,long long b,long long c){  
        b=(b>c?b:c);  
        return (a>b?a:b);  
    }  
    int main(){  
        int n,i,k;  
        long long w1,t1,w2,t2;  
        scanf("%d",&n);  
        for(i=0;i<n;i++){
            scanf("%d",&a[i]);
        }  
        for(i=0;i<n;i+=3){  
            s[0]+=sum[0];  
            sum[0]+=a[i];  
        }  
        for(i=1;i<n;i+=3){  
            s[1]+=sum[1];  
            sum[1]+=a[i];  
        }  
        for(i=2;i<n;i+=3){  
            s[2]+=sum[2];  
            sum[2]+=a[i];  
        }  
        w1=s[0]+s[1]+s[2];  
        t1=max(sum[0],sum[1],sum[2]);  
        
        s[0]=s[1]=s[2]=sum[0]=sum[1]=sum[2]=0;  
        for(i=0;i<n;i++){  
            k=minIndex();  
            s[k]+=sum[k];  
            sum[k]+=a[i];  
        }  
        w2=s[0]+s[1]+s[2];  
        t2=max(sum[0],sum[1],sum[2]);  
        printf("%lld %lld
    %lld %lld
    ",w1,t1,w2,t2);  
        return 0;  
    }  
  • 相关阅读:
    css代码中position的定位,baidu+总结
    ibatis_HelloWorld
    v7系统,任务栏的开始图标和其他图标重合问题
    递归方法:输入一个多位整数,计算出从0到该数1出现的个数。
    解决JS:window.close()在Firefox下的不能关闭的问题
    Programming in the MidFuture(转)
    修改blog问题
    面向数据库的高级语言
    F#试用感受
    基于.net的数学编程语言
  • 原文地址:https://www.cnblogs.com/bernieloveslife/p/7986377.html
Copyright © 2011-2022 走看看