标准程序 & 随机数据生成程序

Laffey 2022-02-14 18:06:20 2022-02-15 8:14:18

标准程序

这是第五版

#include <cstdio>
#include <algorithm>
using namespace std;

const int MAXN = 1e4 + 10;
struct floor{
    int sec, f;
};
floor a[MAXN];

bool cmp(const floor &a, const floor &b)
{
    return a.sec > b.sec;
}

int main()
{
    // freopen("hyb8.in", "r", stdin);
    // freopen("hyb8.out", "w", stdout);
    int n, m, ans = 0;
    scanf("%d%d", &n, &m);
    for (int i = 1; i <= n; i++) {
        scanf("%d", &a[i].sec);
        a[i].f = i;
    }
    sort(a + 2, a + n + 1, cmp);
    int p = 0;
    for (p = 1; p <= m; p++) {
        if (a[p + 1].sec < 0) {
            break;
        }
    }
    int insert = 0;
    if ((p - 2 + 1) < m) {
        insert = p;
        while (a[insert].sec <= a[1].sec) {
            insert--;
        }
    }
    for (int i = 2; i <= p; i++) {
        ans += a[i].sec;
    }
    printf("%d\n", ans);
    for (int i = p; i >= 2; i--)
    {
        if (i == insert)
        {
            printf("%d ", a[1].f);
        }
        printf("%d ", a[i].f);
    }
    if (a[2].sec < 0) {
        printf("1");
    }
    return 0;
}

随机数据生成程序

#include <cstdio>
#include <cstdlib>
#include <ctime>
using namespace std;

const int MOD = 1e4;//0 <= M <= MOD, M < N < MOD, -MOD <= T <= MOD
bool v[MOD << 3];

int random_neg()
{
    return (rand() - (2 * rand())) % MOD;
}

int random_pos()
{
    return (rand() + rand()) % MOD;
}

int neg_to_pos(int a)
{
    if (a < 0)
        return a + MOD + 10;
    return a;
}

int main()
{
    freopen("hyb9.in", "w", stdout);
    srand(time(0));
    int n = random_pos();
    int m = 1e4;
    while (m >= n) {
        m = random_pos();
    }
    printf("%d %d\n", n, m);
    for (int i = 1; i <= n; i++) {
        int a = random_neg();
        if (v[neg_to_pos(a)] == 0) {
            v[neg_to_pos(a)] = 1;
            printf("%d ", a);
        }
        else {
            i--;
        }
    }
    return 0;
}

共 10 条回复

Star

《"下次一定"》

Laffey

下次一定不改数据, 下次一定

2020we
Mrnobody

膜一膜大佬QWQ

2020we
2020we
2020we
2020we
2020we

diao mao

Mrnobody