fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int n, m, x;
  5. int a[110], p[20];
  6. vector<array<int,2>> v[20];
  7.  
  8. int main(){
  9. cin >> n >> m; int ans = 1e9;
  10. for(int i = 0; i < m; i++){
  11. cin >> p[i] >> x; v[i].resize(x);
  12. for(auto &u:v[i]) cin>>u[0]>>u[1];
  13. }
  14. for(int mask = 0; mask < (1<<m); mask++){
  15. fill(a,a+n,1e6); int tot = 0;
  16. for(int i = 0; i < m; i++){
  17. if(mask>>i&1){
  18. tot+=p[i];
  19. for(auto [j,k] : v[i]) a[j]=min(a[j], k);
  20. }
  21. }
  22. ans = min(ans, tot+accumulate(a,a+n,0));
  23. }
  24. cout << ans << "\n";
  25. }
Success #stdin #stdout 0s 5304KB
stdin
5 2
10 5
0 1
1 1
2 1
3 1
4 1
0 5
0 2
1 2
2 2
3 2
4 1
stdout
9