社区讨论

下载第一个数据点,在vs上跑的结果和out一样,但是只给我wa

P1094[NOIP 2007 普及组] 纪念品分组参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@lra039sj
此快照首次捕获于
2024/01/12 10:09
2 年前
此快照最后确认于
2024/01/12 17:19
2 年前
查看原帖
不懂,为什么下载了第一个数据点,在vs上跑的结果和out里一摸一样,但是只给我wa啊?代码如下
C
#include<stdio.h>
#include<stdlib.h>
typedef struct
{
    int x;
    bool flag;
}Elem;
int com(const void* e1, const void* e2)
{
    return ((Elem*)e1)->x - ((Elem*)e2)->x;
}
int main()
{
    int lim, n;
    Elem arr[30001];
    scanf("%d%d", &lim, &n);
    for (int i = 0; i < n; i++)
    {
        scanf("%d", arr + i);
    }
    qsort(arr, n, sizeof(Elem), com);
    int i = 0, j = n - 1, num = 0;
    while (arr[i].flag)
    {
        if (arr[i].x + arr[i].x <= lim)
        {
            while (j >i && arr[j].x > lim - arr[i].x) { j--; }
            if (j >i)
            {
                arr[j].flag = 0;
                arr[i].flag = 0;
                num++;
            }
            else
            {
                break;
            }
            i++;
            j--;
        }
        else
        {
            break;
        }
    }
    for (int i = 0; i < n; i++)
    {
        {
        if (arr[i].flag)
            num++;
        }
    }
    printf("%d", num);
    return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...