6 solutions

  • -3
    @ 2025-5-9 17:18:08

    #include<bits/stdc++.h> #define ll long long using namespace std;

    int n, a[100010]; // 输入数组及长度

    inline void solve() { scanf("%d", &n); // 读取数组长度 bool one = false; // 标记是否存在元素1 int zero = 0; // 统计0的个数

    // 读取数组并统计特性
    for (int i = 1; i <= n; ++i) {
        scanf("%d", &a[i]);
        if (a[i == 1]) one = true;    // 存在1时标记为true
        if (a[i] == 0) ++zero;        // 统计0的数量
    }
    
    // 排序去重操作
    sort(a + 1, a + 1 + n);           // 升序排序
    n = unique(a + 1, a + 1 + n) - (a + 1); // 去重后获取新长度
    
    // 决策逻辑
    if (zero == 1) 
        printf("1\n");    // 唯一0元素时的特殊处理
    else if (zero > 1)
        printf("0\n");    // 多个0元素时的结果
    else
        printf("%d\n", n - one); // 无0时的计算逻辑:去重后元素数 - (是否包含1)
    

    }

    int main() { solve(); return 0; } 注释

    Information

    ID
    1472
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    9
    Tags
    (None)
    # Submissions
    211
    Accepted
    24
    Uploaded By