强迫症,能出结果,但是有一个测试点总过不去

img


#include<iostream>
#include<iomanip>
using namespace std;
int main() {
    int n;
    cin>>n;
    int p=n/100,q=n%100;
    if(n>9999)
        cout<<p<<"-"<<q;
    else{
        if(n/100<22)
            cout<<"20"<<setw(2)<<setfill('0')<<p<<"-"<<setw(2)<<setfill('0')<<q;
        else
            cout<<"19"<<setw(2)<<setfill('0')<<p<<"-"<<setw(2)<<setfill('0')<<q;
    }
    return 0;
}

img
结果是对的,但总有一个测试点过不去,求指教

cout<<p<<"-"<<q ; 这里q如果是个位数 例如1 这种,前面会少个0