#include <stdio.h>
#include <stdint.h>
uint16_t build_register(uint8_t enable, uint8_t mode, uint8_t speed) {
uint16_t reg =0;
if(enable == 1) reg |= (1 << 0);
else reg &= ~(1 << 0);
if(mode == 2){
reg |= (1 << 2);
reg &= ~(1 << 1);
}
else if(mode == 3){
reg |= (1 << 1);
reg |= (1 << 2);
}
else if(mode == 1){
reg |= (1 << 1);
reg &= ~(1 << 2);
}
else{
reg &= ~(1 << 1);
reg &= ~(1 << 2);
}
if(speed == 1) reg |= (1 << 3);
else if(speed ==2) reg |= (1 << 4);
else if(speed ==3){
reg |= (1 << 4);
reg |= (1 << 3);
}
else if(speed == 0) reg &= ~(1 << 4);
else if(speed == 4) reg |= (1 << 5);
else if(speed == 5){
reg |= (1 << 5);
reg |= (1 << 3);
}
else if(speed == 6){
reg |= (1 << 5);
reg |= (1 << 4);
}
else{
reg |= (1 << 5);
reg |= (1 << 4);
reg |= (1 << 3);
}
return reg;
}
int main() {
uint8_t enable, mode, speed;
scanf("%hhu %hhu %hhu", &enable, &mode, &speed);
uint16_t reg = build_register(enable, mode, speed);
printf("%u", reg);
return 0;
}
Input
1 2 4
Expected Output
37