bool check(int x,int k){
    int cnt=(x/3+1)/2;
    int cnt5=(x/5+1)/2;
    cnt+=cnt5;
    if(cnt5>1)cnt-=((cnt5-1)+2)/3;
    return cnt<k;
}
void solve(){
    int k;cin>>k;
    int l=1,r=1e18,mid;
    while(l<=r){
        mid=(l+r)>>1;
        if(check(mid,k))l=mid+1;
        else r=mid-1;
    }
    cout<<l<<endl;
}

二分+容斥原理

二分最终答案x,每次判断小于等于x的数中,“奇数且是3的倍数”和 “偶数且是5结尾”的数的数量有多少即可

对于同时是奇数,3的倍数的数量,我们发现3的倍数从小到大是奇偶间隔排列的,因此除以3向下取模后再除2向上取模即可

对于同时是奇数,5的倍数的数量,我们发现5的倍数从小到大是5和0间隔排列的,因此除以5向下取模后再除2向上取模即可

这样同时满足两者的数就多算了一次,就需要减去同时满足两个条件的数,我们发现以5结尾的数中,从小到大排列后每个都相差10

,10%3==1 ,因此每次相当于在模三运算下加一,所以对于所有5的倍数从小到大排列,也是相邻三个中有一个可以,用与上面类似的方法计算即可