제출 #18489

#제출 시각아이디문제언어결과실행 시간메모리
18489eaststar올림픽 피자 (tutorial5)C++14
100 / 100
103 ms101096 KiB
#include "pizza.h"
void Init(){}
int cnt[8],q[1<<8][100010],s[1<<8],e[1<<8],st,m;
void Order(int n, int *a){
    int i,t=0;
    for(i=0;i<n;++i)t+=(1<<a[i]);
    if((st&t)!=t)q[t][e[t]++]=m++;
    else{
        Bake(m++);
        for(i=0;i<n;++i){
            --cnt[a[i]];
            if(!cnt[a[i]])st-=(1<<a[i]);
        }
    }
}
void Delivery(int x){
    int i,k,l=1e6;
    ++cnt[x];
    if(cnt[x]<2){
        st+=(1<<x);
        for(i=1;i<(1<<8);++i)if(i&(1<<x)){
            if((st&i)!=i)continue;
            if(s[i]<e[i]&&l>q[i][s[i]])k=i,l=q[i][s[i]];
        }
        if(l<1e6){
            for(i=0;i<8;++i)if(k&(1<<i)){
                --cnt[i];
                if(!cnt[i])st-=(1<<i);
            }
            Bake(q[k][s[k]++]);
        }
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...