Submission #19234

#TimeUsernameProblemLanguageResultExecution timeMemory
19234middleageddr올림픽 피자 (tutorial5)C++98
20 / 100
1000 ms1472 KiB
#include "pizza.h" int order_num; int remained_tag; int remained[8]; int order[100000]; int completed_order; int trans[8] = { 1, 2, 4, 8, 16, 32, 64, 128 }; void Init() { int i; order_num = 0; completed_order = 0; for (i = 0; i < 100000; i++) { order[i] = 0; } for (i = 0; i < 8; i++) { remained[i] = 0; } remained_tag = 0; } void Order(int N, int *A) { int i, j, k, need; need = 0; for (i = 0; i < N; i++) { j = *(A + i); need = need | trans[j]; } if ((need & remained_tag) != need) { order[order_num] = need; } else { for (i = 0; i < N; i++) { j = *(A + i); remained[j]--; if (!remained[j]) remained_tag = remained_tag & (~trans[j]); } Bake(order_num); if (completed_order == order_num - 1) completed_order = order_num; } order_num++; } void Delivery(int I) { int i, j, k, need; remained[I]++; if (remained[I] >= 2) return; remained_tag = remained_tag | trans[I]; for (i = completed_order + 1; i < order_num; i++) { if ((remained_tag & order[i]) == order[i]) { for (j = 0; j < 8; j++) if (order[i] & trans[j]) { remained[j]--; if (!remained[j]) remained_tag = remained_tag & (~trans[j]); } Bake(i); if (completed_order == order_num - 1) completed_order = order_num; } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...