Pagini recente » Cod sursa (job #969988) | Cod sursa (job #2582700) | Cod sursa (job #2475034) | Cod sursa (job #2438112) | Cod sursa (job #1508481)
#include <fstream>
#include <vector>
#include <tuple>
#include <algorithm>
#include <iostream>
using namespace std;
int main(){
ifstream f("aprindere.in");
ofstream g("aprindere.out");
int n, m, s;
f >> n >> m;
vector<uint8_t> v(n, 0);
for(auto& x : v){
f >> x;
x -= '0'; }
vector<tuple<int, int, vector<int>>> becuri(m);
for(auto& x : becuri){
f >> get<0>(x) >> get<1>(x);
f >> s;
get<2>(x).resize(s);
for(auto& y : get<2>(x)){
f >> y; } }
sort(begin(becuri), end(becuri));
int cost = 0;
for(const auto& x : becuri){
if(!v[get<0>(x)]){
cost += get<1>(x);
for(const auto y : get<2>(x)){
v[y] ^= 1; } } }
g << cost;
return 0; }