求助为什么wa
  • 板块P9228 原神
  • 楼主ShadowCoder
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/8/13 11:21
  • 上次更新2023/11/3 04:07:58
查看原帖
求助为什么wa
696288
ShadowCoder楼主2023/8/13 11:21
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e6 + 10;
const int INF = 0x3f3f3f3f;
/* flag:1为火标记,2为冰标记 */
int flag;
int ans, maxid, minid;
vector<int> a(N);
vector<int> b(N);
int n, m, k;
/* O(n) */
int listmin(vector<int> arr, int len)
{
    int Min = INF;
    for (int i = 0; i < len; i++)
        if (arr[i] < Min)
        {
            Min = arr[i];
            minid = i;
        }
    return Min;
}
/* O(n) */
int listmax(vector<int> arr, int len)
{
    int Max = -INF;
    for (int i = 0; i < len; i++)
        if (arr[i] > Max)
        {
            Max = arr[i];
            maxid = i;
        }
    return Max;
}
signed main()
{
    cin.tie(0);
    ios::sync_with_stdio(0);
    cin >> n >> m >> k;
    for (int i = 0; i < n; i++)
        cin >> a[i];
    for (int i = 0; i < m; i++)
        cin >> b[i];
    for (int i = 0; i < m + n; i++)
        if (listmin(a, n) < listmin(b, m))
        {
            ans += listmin(a, n);
            flag = 1;
            a.erase(a.begin() + minid);
        }
        else
        {
            ans += listmin(b, m);
            flag = 2;
            b.erase(b.begin() + minid);
        }
    if (flag == 1)
    {
        ans += listmax(a, n);
        flag = 0;
        a.erase(a.begin() + maxid);
    }
    if (flag == 2)
    {
        ans += listmax(b, m);
        flag = 0;
        b.erase(b.begin() + maxid);
    }
    cout << ans << endl;
    return 0;
}

2023/8/13 11:21
加载中...