Cod sursa(job #1946865)

Utilizator SenibelanMales Sebastian Senibelan Data 30 martie 2017 15:55:51
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>

using namespace std;

ifstream in("aprindere.in");
ofstream out("aprindere.out");

const int NMAX  = 1002;

struct camera{
  bool aprins;
  int camere[NMAX];
  int t;
  int catecamere;
};
camera v[NMAX];

int N, M;

void Read(){
  int indice, timp, cate;
  int nr;
  in >> N >> M;
  for(int i = 0; i < N; ++i)
    in >> v[i].aprins;
  for(int i = 0; i < M; ++i){
    in >> indice;
    in >> v[indice].t >> v[indice].catecamere;
    for(int j = 0; j < v[indice].catecamere; ++j){
      in >> nr;
      v[indice].camere[j] = nr;
    }
  }
}

void SolveAndPrint(){
  int sol = 0;
  for(int i = 0; i < N; ++i){
    if(v[i].aprins == 0){
      sol += v[i].t;
      for(int j = 0; j < v[i].catecamere; ++j){
        v[v[i].camere[j]].aprins = !v[v[i].camere[j]].aprins;
      }
    }
  }
  out << sol << "\n";
}

int main(){
  Read();
  SolveAndPrint();
  return 0;
}