2 条题解

  • 1
    @ 2023-07-15 18:03:47
    //太简单辣
    #include<bits/stdc++.h>
    using namespace std;
    long double used[4],a[4],ans=-18446744073709551616;
    //                           ↑这个-2^64次方真的是我背的,不要怀疑我抄网上的代码
    bool vis[4];
    void dfs(int dep)
    {
        if(dep==4)
        {
            long double s=(used[0]-used[1])*(used[2]+used[3]);
            ans=max(ans,s);
        }
        for(int i=0;i<4;i++)
        {
            if(vis[i])continue;
            used[dep]=a[i];
            vis[i]=true;
            dfs(dep+1);
            vis[i]=false;
        }
    }
    int main()
    {
        for(int i=0;i<4;i++)
            cin>>a[i];
        dfs(0);
        cout<<fixed<<setprecision(0)<<ans;
        return 0;
    }
    
  • 0
    @ 2024-08-26 16:17:31

    太神奇了,如果数组从1开始计数,数组里输入的第一个数就消失了,最后一个数也变成0
    并且如果把dfs(0)这句注释掉就正常了

    #include<iostream>
    #include<stdio.h>
    using namespace std;
    long long a[5], b[5], ans = (-1)*(1<<30);
    bool vis[5] = {0, 0, 0, 0, 0};
    void dfs(int dep){
        if(dep == 4){
            ans = max(ans, (b[0]-b[1])*(b[2]+b[3]));
            return;
        }
        for(int i = 0; i < 4; i++){
            if(!vis[i]){
                b[dep] = a[i];
                vis[i] = true;
                dfs(dep+1);
                vis[i] = false;
            }
        }
    }
    int main(){
        ios::sync_with_stdio(false);
        for(int i = 0; i < 4; i++)cin >> a[i];
        dfs(0);
        cout << ans;
        return 0;
    }
    
  • 1

信息

ID
1592
难度
8
分类
(无)
标签
递交数
9
已通过
8
通过率
89%
被复制
5
上传者