问题标题: 酷町堂:2573

0
0
已解决
程天棋
程天棋
资深守护
资深守护
#include<iostream>
using namespace std;
struct ans {
    int sa,sb,sc,sx;
} p;
int a[105],b[105],c[105],x[105];
bool pd(int i,int x1,int x2,int x3) {
    if ((a[i]*x1+b[i]*x2+c[i]*x3)%x[i]==0) return true;
    return false;
}
int qy(int i,int x1,int x2,int x3) {
    return ((a[i]*x1+b[i]*x2+c[i]*x3)/x[i]);
}
int main() {
    for(int i=1; i<=3; i++) cin>>x[i];
    for(int i=1; i<=3; i++) cin>>a[i];
    for(int i=1; i<=3; i++) cin>>b[i];
    for(int i=1; i<=3; i++) cin>>c[i];
    if(x[1]==0&&x[2]==0&&x[3]==0&&a[1]==0&&a[2]==0&&a[3]==0&&b[1]==0&&b[2]==0&&b[3]==0&&c[1]==0&&c[2]==0&&c[3]==0)cout<<0<<" "<<0<<" "<<0<<" ";
    for(int i=0; i<=100; i++) {
        for(int j=0; j<=100; j++) {
            for(int k=0; k<=100; k++) {
                if (pd(1,i,j,k)&&pd(2,i,j,k)&&pd(3,i,j,k)&&(qy(1,i,j,k)==qy(2,i,j,k))&&(qy(2,i,j,k)==qy(3,i,j,k))&&(i!=0||j!=0||k!=0)) {
                    cout<<i<<" "<<j<<" "<<k<<" "<<(a[1]*i+b[1]*j+c[1]*k)/x[1];
                    return 0;
                }
            }
        }
    }
    cout<<"NONE";
    return 0;
}
83分RE代码

 


0
0
王文博
王文博
缔造者之神
缔造者之神

把数组开大一点试试

0
0
0
徐子宸
徐子宸
中级天翼
中级天翼

你这也太复杂了吧

直接暴力枚举+判断不就行了吗

我要回答