Pagini recente » Cod sursa (job #3239505) | Cod sursa (job #1589635) | Cod sursa (job #2702255) | Cod sursa (job #2319762) | Cod sursa (job #2494007)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("aprindere.in");
ofstream g("aprindere.out");
struct room
{
int roomNum;
int neededTime;
int howManyRoomsChange;
vector <int> whatRoomIsChange;
}rooms[1001];
int viz[1001];
int main()
{
int n, m;
f >> n >> m;
for (int i = 0; i < n; i++)
{
int isLight;
f >> isLight;
viz[i] = isLight;
}
for (int i = 0; i < m ; i++)
{
f >> rooms[i].roomNum >> rooms[i].neededTime >> rooms[i].howManyRoomsChange;
for (int j = 0; j < rooms[i].howManyRoomsChange; j++)
{
int localRoomLight;
f >> localRoomLight;
rooms[i].whatRoomIsChange.push_back(localRoomLight);
}
}
int totalTime = 0;
for (int i = 0; i < m; i++)
{
//cout << viz[rooms[i].roomNum] << "\n";
//cout << rooms[i].roomNum << "\n";
if (viz[rooms[i].roomNum] == 0)
{
//cout << rooms[i].roomNum << "\n";
totalTime += rooms[i].neededTime;
for (int j = 0; j < rooms[i].howManyRoomsChange; j++)
{
if (viz[rooms[i].whatRoomIsChange[j]] == 0)
viz[rooms[i].whatRoomIsChange[j]] = 1;
else
viz[rooms[i].whatRoomIsChange[j]] = 0;
}
}
}
g << totalTime;
return 0;
}