C++启蒙低级求解题!

描述
在日常生活中,银行卡上有一串4位数字N,表示银行卡截止使用的年份和月份,它有两种格式:

YYMM:前两位表示年份,后两位表示月份
MMYY:前两位表示月份,后两位表示年份
如果N仅仅是YYMM格式,则输出“YM”;如果N仅仅是MMYY格式,则输出“MY”;如果两种格式都符合,则输出“BOTH”;如果两种格式都不符合,则输出“NEITHER”。

输入
输入一个正整数N。
输出
按要求输出。
样例输入
样例1输入:2021
样例2输入:1212
样例3输入:2107
样例4输入:0721
样例输出
样例1输出:NEITHER
样例2输出:BOTH
样例3输出:YM
样例4输出:MY

void func()
{
    int N;

    while (std::cin >> N)  // Ctrl+D结束
    {
        int first = N / 100;
        int second = N % 100;
        bool firstIsMonth = false;
        bool secondIsMonth = false;
        if (first > 0 && first <= 12)
        {
            firstIsMonth = true;
        }
        if (second > 0 && second <= 12)
        {
            secondIsMonth = true;
        }

        if (firstIsMonth)
        {
            if (secondIsMonth)
            {
                std::cout << "BOTH";
            }
            else
            {
                std::cout << "MY";
            }

        }
        if (!firstIsMonth)
        {
            if (secondIsMonth)
            {
                std::cout << "YM";
            }
            else
            {
                std::cout << "NEITHER";
            }
        }
        std::cout << std::endl;
    }
}
int main()
{
    func();
    return 0;
}
void main()
{
  int n;
  scanf("%d",&n);
  int m = n%100;
  int k = n/100;
  if(m>12 && k>12)
    printf("NEITHER");
  else if(m <= 12 && k<=12)
    printf("BOTH");
  else if(m <=12 && k> 12)
    printf("YM");
  else
    printf("MY");
}


int main()
{
    int N;
    scanf("%d",&N);
    int a,b;
    a=N/100;
    b=N%100;
    if(a<=12&&b<=12)
    {
        printf("BOTH");        
    }
    else if(a <=12 && b>12)
    {
        printf("MY");    
    }
    else if(a >12 && b<=12)
    {
        printf("YM");    
    }
    else
    {
        printf("NEITHER");    
    }
    return 0;
}