语言月赛爆零求助
查看原帖
语言月赛爆零求助
926722
AlexKun楼主2023/4/27 21:22

赛时就没做出来这题,现在再写又炸了

所以求助

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n , mon[1005] , fj , bs;
bool used[1005];
int main()
{
    cin >> n;
    for(ll i = 1; i <= n; i++)
    {
        cin >> mon[i];
    }
    char pos = 'F';
    while(n != 0)
    {
        if(pos == 'F')
        {
            bool flag = false; //判断到底用方法1还是2
            sort(mon + 1 , mon + n + 1);
            for(ll i = 1; i <= n; i++)
            {
                if(used [i] == false && fj > mon[i])
                {
                    flag = true;
                }
            }
            if(flag == true) //方法1
            {
                for(ll i = 1; i <= n; i++)
                {
                    if(used[i] == false && fj <= mon[i])
                    {
                        fj += mon[i];
                        n--;
                        used[i] = true;
                    }
                    break;
                }
            }
            if(flag == false) 
            {
                fj += mon[1]; //方法2
                n -= 1;
                used[1] = true;
            }
            pos = 'B';
            continue;
        }
        if(pos == 'B')
        {
            bool flag = false; //判断到底用方法1还是2
            sort(mon + 1 , mon + n + 1);
            for(ll i = 1; i <= n; i++)
            {
                if(used[i] == false && fj > mon[i])
                {
                    flag = true;
                }
            }
            if(flag == true) //方法1
            {
                for(ll i = 1; i <= n; i++)
                {
                    if(used[i] == false && fj <= mon[i])
                    {
                        bs += mon[i];
                        n--;
                        used[i] = true;
                    }
                    break;
                }
            }
            if(flag == false) 
            {
                bs += mon[1]; //方法2
                n -= 1;
                used[1] = true;
            }
            pos = 'F';
            continue;
        }
    }
    cout << fj << " " << bs << endl;
    return 0;
}

问为什么一个红题写90行? 答曰我太菜了。。。

2023/4/27 21:22
加载中...