제출 #1192073

#제출 시각아이디문제언어결과실행 시간메모리
119207312345678cmp (balkan11_cmp)C++20
100 / 100
919 ms96156 KiB
#include "cmp.h" int delta[6]={1, 1+(1<<12), 1+(1<<10)+(1<<12), 1+(1<<8)+(1<<10)+(1<<12), 1+(1<<6)+(1<<8)+(1<<10)+(1<<12), 1+(1<<4)+(1<<6)+(1<<8)+(1<<10)+(1<<12)}; void remember(int n) { for (int i=0; i<6; i++) bit_set((n>>(2*i))+delta[i]); } int compare(int b) { int l=0, r=6; while (l<r) { int md=(l+r)/2; if (bit_get((b>>(2*md))+delta[md])) r=md; else l=md+1; } if (l==0) return 0; int left=(b>>((l-1)*2))&3; if (left>1) { if (bit_get(((b>>(l*2))<<2)+3+delta[l-1])) return -1; else return 1; } else { if (bit_get(((b>>(l*2))<<2)+delta[l-1])) return 1; else return -1; } } /* start(b) function(b, loc) { ans = 0 ans = 1 ans = -1 if (bit_get(loc)) location else another location } start(0)=0 function(0, 0) -> 1 : 0 -> 0 : 1 */
#Verdict Execution timeMemoryGrader output
Fetching results...