module sale(
   input                clk   ,
   input                rst_n ,
   input                sel   ,//sel=0,5$dranks,sel=1,10&=$drinks
   input          [1:0] din   ,//din=1,input 5$,din=2,input 10$
 
   output   reg  [1:0] drinks_out,//drinks_out=1,output 5$ drinks,drinks_out=2,output 10$ drinks
   output	reg        change_out   
);

parameter s0=0,s1=1;
reg[2:0] next_state,state;

always @(*)
begin
case (state)
s0 :  next_state= sel ? (din==1 ? s1:s0) : s0;
s1 :  next_state = din==0 ?  s1 : s0;
endcase

end
    always @(posedge clk or negedge  rst_n)
    begin
    if(!rst_n)
    begin
    state<=s0;
    end
    else
    begin
    state<=next_state;
    end
    end 
    
   always @ (posedge clk or negedge rst_n)
   begin
   if(!rst_n)
   begin
   drinks_out<=0;
   change_out<=0;
   end
   else if (sel)
   begin
   change_out<= (state==s1 && din==2);
   drinks_out<= ((state==s1 && (din==2|| din==1)) || din==2) ? 2:0;
   end
   else
   begin
    change_out<=  din==2;
   drinks_out<= (din==1 || din==2) ? 1:0;
   end
   end

endmodule