import graph; unitsize(1cm); real Floor(real x) {return floor(x);} pair[] Close; pair[] Open; bool3 branch(real x) { static real lasty; static bool first=true; real y=floor(x); bool samebranch=first || lasty == y; first=false; if(samebranch) lasty=x; else { Close.push((x,lasty)); Open.push((x,y)); } lasty=y; return samebranch ? true : default; }; draw(graph(Floor,-5.5,5.5,500,branch)); axes("$x$",rotate(0)*"$\lfloor x\rfloor$",red); dot(Close); dot(Open,UnFill);