#include <stdio.h>
#include <stdint.h>
uint8_t is_circular_match(uint16_t reg, uint16_t target) {
// Your code here
uint16_t mask;
uint16_t left_rotate = 0;
uint16_t right_rotate = 0;
// if(reg > 0 && target == 0)
// {
// return 0;
// }
for(int i = 0;i<16;i++)
{
mask = reg >> (16-i);
left_rotate = (reg << i) | mask;
if((left_rotate == target) )
{
return 1;
}
}
for(int i = 0;i<16;i++)
{
mask = reg <<(16-i);
right_rotate = (reg >> i) | mask;
if(right_rotate == target)
{
return 1;
}
}
return 0;
}
int main() {
uint16_t reg, target;
scanf("%hu %hu", ®, &target);
printf("%hhu", is_circular_match(reg, target));
return 0;
}
Input
45056 11
Expected Output
1