站外测评姬刚学 OI 16 分求助
查看原帖
站外测评姬刚学 OI 16 分求助
1062508
xzy_awa楼主2025/6/14 17:42

代码如下:

#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
char ch;
int n, m, ans, maxx, cnt, val[105];
struct STRUCT
{
    int a, b[105];
} c[105];
bool cmp(STRUCT x, STRUCT y)
{
    return x.a > y.a;
}
int main()
{
    cin >> n >> m;
    for (int i = 1; i <= m; i++)
        cin >> c[i].a;
    for (int i = 1; i <= n; i++)
    {
        val[i] = i;
        for (int j = 1; j <= m; j++)
        {
            cin >> ch;
            if (ch == 'o')
            {
                c[j].b[i] = 1;
                val[i] += c[j].a;
            }
        }
        if (val[i] > maxx)
        {
            maxx = val[i];
            cnt = 1;
        }
        else if (val[i] == maxx)
            ++cnt;
    }
    sort(c + 1, c + 1 + m, cmp);
    for (int i = 1; i <= n; i++)
    {
        ans = 0;
        if (maxx <= val[i])
        {
            if (cnt == 1)
                cout << 0 << endl;
            else
                cout << 1 << endl;
            continue;
        }
        for (int j = 1; j <= m; j++)
        {
            if (c[j].b[i])
                continue;
            val[i] += c[j].a;
            ++ans;
            if (maxx < val[i])
                cout << ans << endl;
        }
    }
    return 0;
}
2025/6/14 17:42
加载中...