2 条题解
-
0
#include <iostream> #include <vector> using namespace std; struct number { int higher;//上级 int salary;//工资 vector<int> lower;//下级数组 };//boss或员工结构体 vector<number> numbers(65536);//boss和员工数量上限为65536 int pay(number tzy,vector<number>& numbers) {//pay函数计算需要上交给上级的工资 if (tzy.higher != -100) { for (int i = 0; i < tzy.lower.size(); i++) { tzy.salary += pay(numbers[tzy.lower[i]], numbers); } return tzy.salary / 100 * 15; } else return 0; } int main() { int n; cin >> n;//输入员工数量 numbers[0] = { -1, 0 , {} };//初始化boss for (int i = 1; i < 65536; i++) { numbers[i] = { -100, -100, {} }; }//初始化员工(-100表示没有上级) while (n--) { int id, higher, salary; cin >> id >> higher >> salary; numbers[id] = { higher, salary, {} }; numbers[higher].lower.push_back(id); }//输入员工信息,并建立上下级关系 int bosssalary = 0; for (int i = 0; i < numbers[0].lower.size(); i++) { bosssalary += pay(numbers[numbers[0].lower[i]], numbers); }//计算boss的工资 cout << "0 " << bosssalary << endl; return 0; }
信息
- ID
- 54
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 282
- 已通过
- 63
- 上传者