Submission details
Task:Yhdistelmät
Sender:Gomhog
Submission time:2025-11-29 12:27:54 +0200
Language:C++ (C++11)
Status:READY
Result:33
Feedback
groupverdictscore
#1ACCEPTED16
#2ACCEPTED17
#30
#40
Test results
testverdicttimegroup
#1ACCEPTED0.17 s1, 2, 3, 4details
#2ACCEPTED0.20 s1, 3, 4details
#3ACCEPTED0.17 s1, 4details
#4ACCEPTED0.21 s1, 4details
#5ACCEPTED0.21 s1, 4details
#6ACCEPTED0.19 s1, 4details
#7ACCEPTED0.23 s1, 4details
#8ACCEPTED0.21 s1, 4details
#9ACCEPTED0.25 s1, 4details
#10ACCEPTED0.23 s1, 4details
#11ACCEPTED0.00 s2, 3, 4details
#120.00 s3, 4details
#130.00 s4details
#140.00 s4details
#150.00 s4details
#16ACCEPTED0.00 s4details
#170.00 s4details
#18ACCEPTED0.00 s1, 2, 3, 4details
#19ACCEPTED0.00 s1, 2, 3, 4details
#20ACCEPTED0.00 s4details
#21ACCEPTED0.00 s4details

Code

#include <bits/stdc++.h>
#define F first
#define S second
#define X real()
#define Y imag()
using namespace std;
typedef long long ll;
typedef long double ld;

int p[101];
int x[101];
vector<int> cont[101];

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    int n,m;
    cin>>n>>m;

    for (int i=0;i<n;i++) cin>>p[i];
    for (int i=0;i<m;i++) {
        int k;
        cin>>k>>x[i];
        if (k==1) {
            int v;cin>>v;
            p[v-1]-=x[i];
            x[i]=0;
            cont[i].push_back(v-1);
        } else {
        for (int j=0;j<k;j++) {
                int v;
                cin>>v;
                cont[i].push_back(v-1);
            }
        }
        sort(cont[i].begin(),cont[i].end());
    }


    if (n<=20) {
        int parsa = 0;
        int parind=0;
        for (int i=1;i<(1<<n);i++) {
            int cos=0;
            for (int j=0;j<n;j++) {
                if ((i & (1<<j))!=0) cos+=p[j];
            }
            int val=0;
            for (int k=0;k<m;k++) {
                bool ok=true;
                for (int j : cont[k]) {
                    if ((i & (1<<j)) == 0) {
                        ok=false;
                        break;
                    }
                }
                if (ok) val+=x[k];
            }
            if (val-cos > parsa) {
                parsa = val-cos;
                parind = i;
            }
        }

        vector<int> ans;
        for (int i=0;i<n;i++) {
            if ((parind & (1<<i)) != 0) ans.push_back(i+1);
        }

        cout<<parsa<<"\n";
        cout<<ans.size()<<"\n";
        for (int k : ans) cout<<k<<" ";
        cout<<"\n";
        return 0;
    }
    
    set<int> ans;
    for (int i=0;i<m;i++) {
        int cos=0;
        for (int j : cont[i]) {
            if (ans.count(j)==0) cos+=p[j];
        }
        if (x[i]-cos>=0) {
            for (int j : cont[i]) ans.insert(j);
        }
    }

    int val = 0;
    for (int i=0;i<m;i++) {
        int ok=true;
        for (int j : cont[i]) {
            if (ans.count(j)==0) {
                ok=false;
                break;
            }
        }
        if (ok) val+=x[i];
    }
    for (int i : ans) val-=p[i];
    cout<<val<<"\n";
    cout<<ans.size()<<"\n";
    for (int i : ans) cout<<i+1<<" ";
    cout<<"\n";
}

Test details

Test 1

Group: 1, 2, 3, 4

Verdict: ACCEPTED

input
20 20
80 69 91 47 74 75 94 22 100 43...

correct output
446
11
2 3 5 8 10 13 14 15 17 19 20 

user output
446
11
2 3 5 8 10 13 14 15 17 19 20 

Test 2

Group: 1, 3, 4

Verdict: ACCEPTED

input
20 20
5 42 7 18 55 64 64 83 73 44 22...

correct output
425
11
1 2 3 4 7 10 13 16 18 19 20 

user output
425
11
1 2 3 4 7 10 13 16 18 19 20 

Test 3

Group: 1, 4

Verdict: ACCEPTED

input
20 20
30 98 55 69 40 3 95 12 64 56 3...

correct output
284
8
1 3 8 10 15 16 18 19 

user output
284
7
1 3 8 10 15 18 19 

Test 4

Group: 1, 4

Verdict: ACCEPTED

input
20 20
11 44 58 8 16 52 20 43 24 31 4...

correct output
348
10
2 4 5 7 11 13 15 16 18 20 

user output
348
10
2 4 5 7 11 13 15 16 18 20 

Test 5

Group: 1, 4

Verdict: ACCEPTED

input
20 20
53 44 5 37 88 36 81 47 85 97 3...

correct output
119
13
1 2 4 8 10 11 13 14 16 17 18 1...

user output
119
13
1 2 4 8 10 11 13 14 16 17 18 1...

Test 6

Group: 1, 4

Verdict: ACCEPTED

input
20 20
20 27 75 94 48 62 37 55 49 67 ...

correct output
478
11
1 2 5 7 10 12 13 15 16 17 18 

user output
478
11
1 2 5 7 10 12 13 15 16 17 18 

Test 7

Group: 1, 4

Verdict: ACCEPTED

input
20 20
32 28 67 72 32 76 53 30 47 67 ...

correct output
215
10
2 4 5 7 8 9 11 13 16 20 

user output
215
10
2 4 5 7 8 9 11 13 16 20 

Test 8

Group: 1, 4

Verdict: ACCEPTED

input
20 20
39 72 74 79 49 45 73 44 37 4 7...

correct output
185
13
1 3 5 6 7 8 10 13 14 16 17 18 ...

user output
185
11
1 3 7 8 10 13 14 16 17 18 20 

Test 9

Group: 1, 4

Verdict: ACCEPTED

input
20 20
41 56 65 78 2 13 17 42 83 76 9...

correct output
95
11
2 4 5 6 7 8 13 14 17 18 19 

user output
95
11
2 4 5 6 7 8 13 14 17 18 19 

Test 10

Group: 1, 4

Verdict: ACCEPTED

input
20 20
43 1 20 61 25 46 2 18 36 1 85 ...

correct output
111
8
1 2 3 7 8 10 16 19 

user output
111
8
1 2 3 7 8 10 16 19 

Test 11

Group: 2, 3, 4

Verdict: ACCEPTED

input
100 100
992248 852673 366775 737068 56...

correct output
30642743
46
3 5 6 9 11 12 15 16 17 18 21 2...

user output
30642743
46
3 5 6 9 11 12 15 16 17 18 21 2...

Test 12

Group: 3, 4

Verdict:

input
100 100
153790 361741 45017 47184 9422...

correct output
16529629
39
2 3 4 5 10 12 14 17 24 25 26 3...

user output
15915517
35
2 3 4 10 12 14 17 24 25 26 32 ...

Test 13

Group: 4

Verdict:

input
100 100
186797 446409 957173 150683 17...

correct output
14928280
62
1 2 8 9 10 11 12 14 15 16 17 2...

user output
11028486
34
8 9 10 11 16 17 20 21 22 25 26...

Test 14

Group: 4

Verdict:

input
100 100
343213 582494 707357 104682 66...

correct output
11308944
72
1 3 4 5 6 7 8 9 10 11 12 13 14...

user output
4016900
23
3 4 7 8 10 11 14 30 34 42 49 5...

Test 15

Group: 4

Verdict:

input
100 100
922546 12088 805566 351521 644...

correct output
3311952
10
14 17 26 29 64 65 70 76 83 95 

user output
2485617
15
2 14 17 21 26 29 33 58 64 65 6...

Test 16

Group: 4

Verdict: ACCEPTED

input
100 100
923042 35929 531316 587665 845...

correct output
519209
6
2 18 45 61 64 86 

user output
519209
6
2 18 45 61 64 86 

Test 17

Group: 4

Verdict:

input
100 100
493725 218022 417464 531537 83...

correct output
1255541
11
16 19 24 29 30 50 60 62 67 74 ...

user output
1168911
7
16 19 24 29 30 50 60 

Test 18

Group: 1, 2, 3, 4

Verdict: ACCEPTED

input
1 1
2
1 1
1

correct output
0
0

user output
0
0

Test 19

Group: 1, 2, 3, 4

Verdict: ACCEPTED

input
1 1
1
1 2
1

correct output
1
1

user output
1
1

Test 20

Group: 4

Verdict: ACCEPTED

input
100 100
1000000 1000000 1000000 100000...

correct output
0
100
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

user output
0
0

Test 21

Group: 4

Verdict: ACCEPTED

input
100 100
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
99999900
100
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

user output
99999900
100
1 2 3 4 5 6 7 8 9 10 11 12 13 ...