银行排队问题之单队列多窗口服务。谁会呀。马上就要答辩了

#include<stdio.h>

#include<stdlib.h>

typedef struct node

{

int t, p;

} ST;

ST q[1005];

int main()

{

int l, r, n, k, i;

scanf("%d",&n);

l = r = 0;

for(i = 0; i < n; i++)

{

    scanf("%d %d", &q[r].t, &q[r].p);

    if(q[r].p > 60) q[r].p = 60;

    r++;

}

scanf("%d", &k);

int sumwait = 0, lenwait = 0, wait = 0;

int sum[15] = {0}, winnum[15] = {0};

while(l < r)

{

    int flag = 0, minn = 99999, imin = 0;

    for(i = 0; i < k; i++)

    {

        if(sum[i] <= q[l].t)

       

        {

            sum[i] = q[l].t + q[l].p;

            winnum[i]++;

            flag = 1;

            l++;

            break;

        }

        if(minn > sum[i])

        {

            minn = sum[i];

            imin = i;

        }

    }

    if(!flag)

    {

        wait = minn - q[l].t;

        if(lenwait < wait) lenwait = wait;

        sumwait += wait;

        sum[imin] = minn + q[l].p;

        winnum[imin]++;

        l++;

    }

}

int last = 0;

for(i = 0; i < k; i++)

{

    if(last < sum[i]) last = sum[i];

}

printf("%.1lf %d %d\n", 1.0 * sumwait / n, lenwait, last);

for(i = 0; i < k; i++)

{

    printf("%d", winnum[i]);

    if(i == k - 1) printf("\n");

    else printf(" ");

}

return 0;

}

img

参考链接.希望有帮助

PTA 7-3 银行排队问题之单队列多窗口服务_北极光。的博客-CSDN博客 题目描述假设银行有K个窗口提供服务,窗口前设一条黄线,所有顾客按到达时间在黄线后排成一条长龙。当有窗口空闲时,下一位顾客即去该窗口处理事务。当有多个窗口可选择时,假设顾客总是选择编号最小的窗口。本题要求输出前来等待服务的N位顾客的平均等待时间、最长等待时间、最后完成时间,并且统计每个窗口服务了多少名顾客。输入格式:输入第1行给出正整数N(≤1000),为顾客总人数;随后N行,每行给出一位顾... https://blog.csdn.net/nntcdhl/article/details/104912383?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166864787716800180612092%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166864787716800180612092&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~top_positive~default-1-104912383-null-null.nonecase&utm_term=%E9%93%B6%E8%A1%8C%E6%8E%92%E9%98%9F%E9%97%AE%E9%A2%98%E4%B9%8B%E5%8D%95%E9%98%9F%E5%88%97%E5%A4%9A%E7%AA%97%E5%8F%A3%E6%9C%8D%E5%8A%A1&spm=1018.2226.3001.4450

你问题是什么