溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何編寫(xiě)代碼實(shí)現(xiàn)外賣店優(yōu)先級(jí)效果

發(fā)布時(shí)間:2021-10-14 10:38:45 來(lái)源:億速云 閱讀:123 作者:iii 欄目:編程語(yǔ)言

本篇內(nèi)容主要講解“如何編寫(xiě)代碼實(shí)現(xiàn)外賣店優(yōu)先級(jí)效果”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“如何編寫(xiě)代碼實(shí)現(xiàn)外賣店優(yōu)先級(jí)效果”吧!

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>

#define x first
#define y second

using namespace std;

typedef pair<int, int> PII;
const int N=100010; 

int score[N];//優(yōu)先級(jí)
int last[N];
bool st[N];//是否在緩存

int n,m,T;
PII order[N];//訂單二元組

int main(){
    scanf("%d%d%d",&n,&m,&T);
    for(int i=0;i<m;i++) scanf("%d%d", &order[i].x, &order[i].y);
    sort(order,order+m);
    //枚舉每個(gè)訂單
    for(int i=0;i<m;i++){
        int j=i;
        while(j<m && order[i]==order[j]) j++;
        int t=order[i].x,id=order[i].y,cnt=j-i;//時(shí)間 id 個(gè)數(shù)
        i=j-1;
        
        score[id] -= t-last[id]-1;
        //最低減到0
        if(score[id]<0) score[id]=0;
        if(score[id]<=3) st[id]=false;//以上處理的是t時(shí)刻之前的信息
        
        score[id]+=2*cnt;
        if(score[id]>5) st[id]=true;
        
        last[id]=t;
    }
    for(int i=1;i<=n;i++){
        if(last[i]<T){
            score[i]-=T-last[i];
            if(score[i]<=3) st[i]=false;
        }
    }
    int res=0;
    for(int i=1;i<=n;i++) res+=st[i];
    printf("%d\n",res);
    return 0;
}

到此,相信大家對(duì)“如何編寫(xiě)代碼實(shí)現(xiàn)外賣店優(yōu)先級(jí)效果”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI