问一个题,测试点只过了一半

img

#include<bits/stdc++.h>
using namespace std;
int main(){
int a,i,j,m,n,k,x;
cin>>a;
for(k=1;;k++){
    for(x=1;;x++){
        int s=52*(7*x+21*k);
        if(s==a){printf("%d\n%d",x,k);return 0;
        }
        if(s>a||x>100){break;
        }
    }
}
return 0;
}

是不是超时?

代码逻辑上没什么问题
我猜应该是测试数据太大,int溢出了吧
你换成更大的类型来存

谢谢xdm,我找到问题了,应该第九行和第十一行换一下,应先判断x<=100,再判断s==a