#include <iostream>
#include <vector>
int main() {
int totalDays{}, r{}, m{},rsomelenth{};
std::cin >> totalDays;
std::vector<int> user(4, 0);//创建输入数据的存储点{输入日期 {日期 用户 地区}}
std::vector<std::vector<std::int32_t>> rsome(1001 * talDays,std::vector<std::int32_t>(3, 0));
//存储输入的疫情地区数据{输入日期 地区 结束日期}
std::vector<std::vector<bool>> usersome(1020,std::vector<bool>(1001 * totalDays, 0));
//创建每天风险人员每一行代表日期 列代表可能输入人员 用bool值来确定每天的风险情况
for (int i{}; i < totalDays; i++) {
std::cin >> r >> m;
for (int j{}; j < r; j++) {
rsome[rsomelenth][0] = i;
std::cin >> rsome[rsomelenth][1];
rsome[rsomelenth][2] = i + 7;
rsomelenth++;
}
for (int j{}; j < m; j++) {
user[0] = i;
std::cin >> user[1];
std::cin >> user[2];
std::cin >> user[3];
for (int k{rsomelenth-6}; k<rsomelenth; k++) {
if (k < 0)k = 0;
if (user[0] < rsome[k][2] && user[3] == rsome[k][1] && user[1] >= some[k][0]) {
for(int l{ i };l < rsome[k][2];l++) usersome[l][user[2]] = true;
}
}
}
}
for (int i{}; i < totalDays; i++) {
std::cout << i << ' ';
for (int j{}; j < 1001 * totalDays; j++) {
if (usersome[i][j]) std::cout << j << ' ';
}
std::cout << std::endl;
}
}
只有十分的代码,不知道哪里有问题以及如何改进
把每一天输入的风险地区储存 如何每输入一个用户数据就进行三个条件的判断
符合条件后将usersome数组的对应时间bool值改为true
最后遍历每天的bool值,输出当前用户
---------------------------------------------------------------------------------------------------------------------------------
何解?
:) ~谢谢