Cod sursa(job #2637293)

Utilizator euyoTukanul euyo Data 22 iulie 2020 12:58:20
Problema Aprindere Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>
#include <vector>

using namespace std;

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

const int MaxN = 1001;

int s[MaxN];
vector<int> rms[MaxN];
int t[MaxN];

int main() { 
  int n, m, i, nr, r, ar, time;
  
  fin >> n >> m;
  for ( i = 0; i < n; ++i ) {
	fin >> s[i];
  }
  for ( i = 0; i < m; ++i ) {
	fin >> r >> t[r] >> nr;
	while ( nr-- ) {
	  fin >> ar;
      rms[r].push_back( ar );
	} 
  }
  time = 0;
  for ( i = 0; i < n; ++i ) {
	if ( rms[i].size() > 0 ) {
	  if ( s[i] == 0 ) {
		s[i] = 1;
		time += t[i];
	  }
	  for ( int j = 0; j < rms[i].size(); ++j ) {
		s[rms[i][j]] = 1 - s[rms[i][j]];
	  }
	}
  }
  fout << time;
  fin.close();
  fout.close();
  return 0;
}