题解:P15002 [UOI 2019 II Stage] 重大发现

· · 题解

不难发现,这块石板转了四次之后就转回来了,如下图。

因此我们只需要计算四种情况下的重要性,再找出重要性最大的一种然后输出旋转次数就行了。

代码见下。

#include<bits/stdc++.h>
#define int long long//注意要开long long,不然会炸。
using namespace std;
signed main(){
    int a,b,c,d;
    cin>>a>>b>>c>>d;
    int z0=a*(b+c-d);
    int z1=c*(a+d-b);
    int z2=d*(c+b-a);
    int z3=b*(d+a-c);
    if(z0>=z1&&z0>=z2&&z0>=z3){//这里要用大于等于,为了使圈数不同而重要性相同时输出最小圈数。
        cout<<0;
        return 0;
    }
    if(z1>=z2&&z1>=z3){
        cout<<1;
        return 0;
    }
    if(z2>=z3){
        cout<<2;
        return 0;
    }
    cout<<3;
    return 0;
}