Cod sursa(job #1733757)

Utilizator alittlezzCazaciuc Valentin alittlezz Data 25 iulie 2016 17:12:36
Problema Aprindere Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <fstream>
#include <math.h>
#include <algorithm>
#include <unordered_map>
#include <bitset>

using namespace std;
#define ll long long
#define llu long long unsigned
#define pb push_back
#define mp make_pair

string problemName = "aprindere";
string inFile = problemName+".in";
string outFile = problemName+".out";
ifstream fin(inFile.c_str());
ofstream fout(outFile.c_str());

const int N = 1e3;
bool initial[N+5];
int T[N+5], info[N+5][N/10+5];

int main(){
    int n,m,i,j,ans,c;
    ans = 0;
    fin>>n>>m;
    for(i = 1;i <= n;i++){
        fin>>initial[i];
    }
    for(i = 1;i <= m;i++){
        fin>>c;
        c++;
        fin>>T[c];
        fin>>info[c][0];
        for(j = 1;j <= info[c][0];j++){
            fin>>info[c][j];
            info[c][j]++;
        }
    }
    for(i = 1;i <= n;i++){
        if(initial[i] == 0){
            ans += T[i];
            for(j = 1;j <= info[i][0];j++){
                initial[info[i][j]] ^= 1;
            }
        }
    }
    fout<<ans;
    return 0;
}