首页 > 试题广场 >

刷题统计

[编程题]刷题统计
  • 热度指数:295 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
{\hspace{15pt}}牛客推出了新手入门、算法入门、算法进阶三部曲题单。
{\hspace{15pt}}设:
{\hspace{23pt}}n — 至少刷过任意一个题单的人数;
{\hspace{23pt}}a — 刷过新手入门的人数;
{\hspace{23pt}}b — 刷过算法入门的人数;
{\hspace{23pt}}c — 刷过算法进阶的人数;
{\hspace{23pt}}d — 恰好刷过其中任意两个题单的总人数。
{\hspace{15pt}}数据保证存在唯一非负整数解,请计算同时刷过全部三部曲的人数。

输入描述:
{\hspace{15pt}}第一行输入整数 T\left(1\leqq T\leqq 10^3\right) — 测试用例数量。
{\hspace{15pt}}接下来 T 行,每行五个整数 n,a,b,c,d\left(1\leqq n,a,b,c,d\leqq 10^9\right)


输出描述:
{\hspace{15pt}}对于每个用例输出一行,一个整数表示同时刷过全部三部曲的人数。
示例1

输入

1
28 16 16 22 12

输出

7
容斥原理:
A + B + C - AB - BC - AC + ABC = 总 - 都不满足
A + B + C - 只满足两个条件的 - 2*满足三个条件的 = 总 - 都不满足
即:a + b + c - d - 2*x = n,求出x即可。
#include <iostream>
using namespace std;
  
int main() {
    int t;
    cin >> t;
    while(t--) {
        int n, a, b, c, d;
        cin >> n >> a >> b >> c >> d;
        cout << (a + b + c - d - n) / 2 << endl;
    }
    return 0;
}



发表于 2025-11-10 14:49:40 回复(0)