Submission #1062695

# Submission time Handle Problem Language Result Execution time Memory
1062695 2024-08-17T09:53:35 Z nvujica Detecting Molecules (IOI16_molecules) C++14
31 / 100
197 ms 2652 KB
#include <bits/stdc++.h>
#include "molecules.h"
#define ll long long

using namespace std;

const int maxn = 5e5 + 100;

int n;
unsigned ll bio[maxn / 64];
unsigned ll bio2[maxn / 64];
int kada[maxn];

vector<int> find_subset(int l, int u, vector<int> w) {
    n = w.size();

    memset(kada, -1, sizeof kada);

    // for(int j = 63; j >= 0; j--){
    //     if(bio[0] && (1LL << j)) cout << 1;
    //     else cout << 0;
    // }
    // cout << endl;

    bio[0] = (1LL << 63);

    // cout << "prije ";

    // for(int j = 63; j >= 0; j--){
    //     if(bio[0] & (1LL << j)) cout << 1;
    //     else cout << 0;
    // }
    // cout << endl;


    for(int i = 0; i < n; i++){
        int d = w[i] / 64;
        int r = w[i] % 64;

        for(int j = 0; j < maxn / 64; j++){
            bio2[j] = bio[j];

            if(j - d >= 0) bio2[j] |= (bio[j - d] >> r);
            if(j - d - 1 >= 0) bio2[j] |= (bio[j - d - 1] << (64 - r));

            // for(int j = 63; j >= 0; j--){
            //     if(bio[0] & (1LL << j)) cout << 1;
            //     else cout << 0;
            // }
            // cout << endl;
        }

        for(int j = 0; j < maxn / 64; j++){
            if(bio2[j] != bio[j]){
                for(int b = 0; b < 64; b++){
                    if((bio2[j] & (1LL << b)) && !(bio[j] & (1LL << b))) kada[(j + 1) * 64 - 1 - b] = i;
                }

                bio[j] = bio2[j];
            }
        }
    }

    int x = 0;

    // for(int j = 63; j >= 0; j--){
    //     if(bio[0] & (1LL << j)) cout << 1;
    //     else cout << 0;
    // }
    // cout << endl;

    // for(int i = 0; i <= 10; i++){
    //     cout << kada[i] << ' ';
    // }
    // cout << endl;

    for(int i = l; i <= u; i++){
        if(kada[i] != -1){
            x = i;
            break;
        }
    }

    vector <int> v;

    while(x){
        v.push_back(kada[x]);
        x -= w[kada[x]];
    }
    
    reverse(v.begin(), v.end());

    return v;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB OK (n = 1, answer = NO)
2 Correct 2 ms 2396 KB OK (n = 1, answer = NO)
3 Correct 2 ms 2396 KB OK (n = 1, answer = YES)
4 Correct 1 ms 2396 KB OK (n = 2, answer = YES)
5 Correct 1 ms 2396 KB OK (n = 2, answer = YES)
6 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
7 Correct 1 ms 2232 KB OK (n = 3, answer = YES)
8 Correct 1 ms 2232 KB OK (n = 3, answer = YES)
9 Correct 1 ms 2232 KB OK (n = 3, answer = YES)
10 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
11 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
12 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
13 Correct 1 ms 2396 KB OK (n = 3, answer = NO)
14 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
15 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
16 Correct 1 ms 2396 KB OK (n = 3, answer = NO)
17 Correct 1 ms 2396 KB OK (n = 3, answer = NO)
18 Correct 4 ms 2396 KB OK (n = 100, answer = NO)
19 Correct 2 ms 2396 KB OK (n = 100, answer = YES)
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB OK (n = 12, answer = YES)
2 Correct 1 ms 2396 KB OK (n = 12, answer = YES)
3 Correct 1 ms 2348 KB OK (n = 12, answer = NO)
4 Correct 2 ms 2396 KB OK (n = 12, answer = NO)
5 Correct 1 ms 2392 KB OK (n = 12, answer = YES)
6 Correct 1 ms 2276 KB OK (n = 12, answer = YES)
7 Correct 2 ms 2232 KB OK (n = 12, answer = YES)
8 Correct 1 ms 2396 KB OK (n = 12, answer = YES)
9 Correct 2 ms 2396 KB OK (n = 6, answer = YES)
10 Correct 2 ms 2396 KB OK (n = 12, answer = YES)
11 Correct 4 ms 2396 KB OK (n = 100, answer = NO)
12 Correct 2 ms 2396 KB OK (n = 100, answer = YES)
13 Correct 2 ms 2396 KB OK (n = 100, answer = NO)
14 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
15 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
16 Correct 2 ms 2396 KB OK (n = 100, answer = YES)
17 Correct 3 ms 2232 KB OK (n = 100, answer = YES)
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB OK (n = 1, answer = NO)
2 Correct 2 ms 2396 KB OK (n = 1, answer = NO)
3 Correct 2 ms 2396 KB OK (n = 1, answer = YES)
4 Correct 1 ms 2396 KB OK (n = 2, answer = YES)
5 Correct 1 ms 2396 KB OK (n = 2, answer = YES)
6 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
7 Correct 1 ms 2232 KB OK (n = 3, answer = YES)
8 Correct 1 ms 2232 KB OK (n = 3, answer = YES)
9 Correct 1 ms 2232 KB OK (n = 3, answer = YES)
10 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
11 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
12 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
13 Correct 1 ms 2396 KB OK (n = 3, answer = NO)
14 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
15 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
16 Correct 1 ms 2396 KB OK (n = 3, answer = NO)
17 Correct 1 ms 2396 KB OK (n = 3, answer = NO)
18 Correct 4 ms 2396 KB OK (n = 100, answer = NO)
19 Correct 2 ms 2396 KB OK (n = 100, answer = YES)
20 Correct 1 ms 2396 KB OK (n = 12, answer = YES)
21 Correct 1 ms 2396 KB OK (n = 12, answer = YES)
22 Correct 1 ms 2348 KB OK (n = 12, answer = NO)
23 Correct 2 ms 2396 KB OK (n = 12, answer = NO)
24 Correct 1 ms 2392 KB OK (n = 12, answer = YES)
25 Correct 1 ms 2276 KB OK (n = 12, answer = YES)
26 Correct 2 ms 2232 KB OK (n = 12, answer = YES)
27 Correct 1 ms 2396 KB OK (n = 12, answer = YES)
28 Correct 2 ms 2396 KB OK (n = 6, answer = YES)
29 Correct 2 ms 2396 KB OK (n = 12, answer = YES)
30 Correct 4 ms 2396 KB OK (n = 100, answer = NO)
31 Correct 2 ms 2396 KB OK (n = 100, answer = YES)
32 Correct 2 ms 2396 KB OK (n = 100, answer = NO)
33 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
34 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
35 Correct 2 ms 2396 KB OK (n = 100, answer = YES)
36 Correct 3 ms 2232 KB OK (n = 100, answer = YES)
37 Correct 2 ms 2460 KB OK (n = 28, answer = YES)
38 Correct 2 ms 2396 KB OK (n = 27, answer = YES)
39 Correct 3 ms 2396 KB OK (n = 90, answer = YES)
40 Correct 5 ms 2392 KB OK (n = 100, answer = YES)
41 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
42 Correct 3 ms 2456 KB OK (n = 10, answer = YES)
43 Correct 4 ms 2396 KB OK (n = 100, answer = YES)
44 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
45 Correct 3 ms 2464 KB OK (n = 100, answer = YES)
46 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
47 Correct 4 ms 2396 KB OK (n = 100, answer = NO)
48 Correct 5 ms 2476 KB OK (n = 100, answer = NO)
49 Correct 3 ms 2392 KB OK (n = 100, answer = NO)
50 Correct 2 ms 2396 KB OK (n = 100, answer = YES)
51 Correct 2 ms 2396 KB OK (n = 100, answer = YES)
52 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
53 Correct 2 ms 2392 KB OK (n = 100, answer = YES)
54 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB OK (n = 1, answer = NO)
2 Correct 2 ms 2396 KB OK (n = 1, answer = NO)
3 Correct 2 ms 2396 KB OK (n = 1, answer = YES)
4 Correct 1 ms 2396 KB OK (n = 2, answer = YES)
5 Correct 1 ms 2396 KB OK (n = 2, answer = YES)
6 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
7 Correct 1 ms 2232 KB OK (n = 3, answer = YES)
8 Correct 1 ms 2232 KB OK (n = 3, answer = YES)
9 Correct 1 ms 2232 KB OK (n = 3, answer = YES)
10 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
11 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
12 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
13 Correct 1 ms 2396 KB OK (n = 3, answer = NO)
14 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
15 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
16 Correct 1 ms 2396 KB OK (n = 3, answer = NO)
17 Correct 1 ms 2396 KB OK (n = 3, answer = NO)
18 Correct 4 ms 2396 KB OK (n = 100, answer = NO)
19 Correct 2 ms 2396 KB OK (n = 100, answer = YES)
20 Correct 1 ms 2396 KB OK (n = 12, answer = YES)
21 Correct 1 ms 2396 KB OK (n = 12, answer = YES)
22 Correct 1 ms 2348 KB OK (n = 12, answer = NO)
23 Correct 2 ms 2396 KB OK (n = 12, answer = NO)
24 Correct 1 ms 2392 KB OK (n = 12, answer = YES)
25 Correct 1 ms 2276 KB OK (n = 12, answer = YES)
26 Correct 2 ms 2232 KB OK (n = 12, answer = YES)
27 Correct 1 ms 2396 KB OK (n = 12, answer = YES)
28 Correct 2 ms 2396 KB OK (n = 6, answer = YES)
29 Correct 2 ms 2396 KB OK (n = 12, answer = YES)
30 Correct 4 ms 2396 KB OK (n = 100, answer = NO)
31 Correct 2 ms 2396 KB OK (n = 100, answer = YES)
32 Correct 2 ms 2396 KB OK (n = 100, answer = NO)
33 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
34 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
35 Correct 2 ms 2396 KB OK (n = 100, answer = YES)
36 Correct 3 ms 2232 KB OK (n = 100, answer = YES)
37 Correct 2 ms 2460 KB OK (n = 28, answer = YES)
38 Correct 2 ms 2396 KB OK (n = 27, answer = YES)
39 Correct 3 ms 2396 KB OK (n = 90, answer = YES)
40 Correct 5 ms 2392 KB OK (n = 100, answer = YES)
41 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
42 Correct 3 ms 2456 KB OK (n = 10, answer = YES)
43 Correct 4 ms 2396 KB OK (n = 100, answer = YES)
44 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
45 Correct 3 ms 2464 KB OK (n = 100, answer = YES)
46 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
47 Correct 4 ms 2396 KB OK (n = 100, answer = NO)
48 Correct 5 ms 2476 KB OK (n = 100, answer = NO)
49 Correct 3 ms 2392 KB OK (n = 100, answer = NO)
50 Correct 2 ms 2396 KB OK (n = 100, answer = YES)
51 Correct 2 ms 2396 KB OK (n = 100, answer = YES)
52 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
53 Correct 2 ms 2392 KB OK (n = 100, answer = YES)
54 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
55 Correct 125 ms 2552 KB OK (n = 10000, answer = YES)
56 Correct 149 ms 2392 KB OK (n = 10000, answer = YES)
57 Correct 141 ms 2652 KB OK (n = 10000, answer = YES)
58 Correct 197 ms 2396 KB OK (n = 10000, answer = YES)
59 Incorrect 131 ms 2392 KB item #29 is taken twice
60 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB OK (n = 1, answer = NO)
2 Correct 2 ms 2396 KB OK (n = 1, answer = NO)
3 Correct 2 ms 2396 KB OK (n = 1, answer = YES)
4 Correct 1 ms 2396 KB OK (n = 2, answer = YES)
5 Correct 1 ms 2396 KB OK (n = 2, answer = YES)
6 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
7 Correct 1 ms 2232 KB OK (n = 3, answer = YES)
8 Correct 1 ms 2232 KB OK (n = 3, answer = YES)
9 Correct 1 ms 2232 KB OK (n = 3, answer = YES)
10 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
11 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
12 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
13 Correct 1 ms 2396 KB OK (n = 3, answer = NO)
14 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
15 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
16 Correct 1 ms 2396 KB OK (n = 3, answer = NO)
17 Correct 1 ms 2396 KB OK (n = 3, answer = NO)
18 Correct 4 ms 2396 KB OK (n = 100, answer = NO)
19 Correct 2 ms 2396 KB OK (n = 100, answer = YES)
20 Correct 1 ms 2396 KB OK (n = 12, answer = YES)
21 Correct 1 ms 2396 KB OK (n = 12, answer = YES)
22 Correct 1 ms 2348 KB OK (n = 12, answer = NO)
23 Correct 2 ms 2396 KB OK (n = 12, answer = NO)
24 Correct 1 ms 2392 KB OK (n = 12, answer = YES)
25 Correct 1 ms 2276 KB OK (n = 12, answer = YES)
26 Correct 2 ms 2232 KB OK (n = 12, answer = YES)
27 Correct 1 ms 2396 KB OK (n = 12, answer = YES)
28 Correct 2 ms 2396 KB OK (n = 6, answer = YES)
29 Correct 2 ms 2396 KB OK (n = 12, answer = YES)
30 Correct 4 ms 2396 KB OK (n = 100, answer = NO)
31 Correct 2 ms 2396 KB OK (n = 100, answer = YES)
32 Correct 2 ms 2396 KB OK (n = 100, answer = NO)
33 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
34 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
35 Correct 2 ms 2396 KB OK (n = 100, answer = YES)
36 Correct 3 ms 2232 KB OK (n = 100, answer = YES)
37 Correct 2 ms 2460 KB OK (n = 28, answer = YES)
38 Correct 2 ms 2396 KB OK (n = 27, answer = YES)
39 Correct 3 ms 2396 KB OK (n = 90, answer = YES)
40 Correct 5 ms 2392 KB OK (n = 100, answer = YES)
41 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
42 Correct 3 ms 2456 KB OK (n = 10, answer = YES)
43 Correct 4 ms 2396 KB OK (n = 100, answer = YES)
44 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
45 Correct 3 ms 2464 KB OK (n = 100, answer = YES)
46 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
47 Correct 4 ms 2396 KB OK (n = 100, answer = NO)
48 Correct 5 ms 2476 KB OK (n = 100, answer = NO)
49 Correct 3 ms 2392 KB OK (n = 100, answer = NO)
50 Correct 2 ms 2396 KB OK (n = 100, answer = YES)
51 Correct 2 ms 2396 KB OK (n = 100, answer = YES)
52 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
53 Correct 2 ms 2392 KB OK (n = 100, answer = YES)
54 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
55 Correct 125 ms 2552 KB OK (n = 10000, answer = YES)
56 Correct 149 ms 2392 KB OK (n = 10000, answer = YES)
57 Correct 141 ms 2652 KB OK (n = 10000, answer = YES)
58 Correct 197 ms 2396 KB OK (n = 10000, answer = YES)
59 Incorrect 131 ms 2392 KB item #29 is taken twice
60 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 2396 KB OK (n = 1, answer = NO)
2 Correct 2 ms 2396 KB OK (n = 1, answer = NO)
3 Correct 2 ms 2396 KB OK (n = 1, answer = YES)
4 Correct 1 ms 2396 KB OK (n = 2, answer = YES)
5 Correct 1 ms 2396 KB OK (n = 2, answer = YES)
6 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
7 Correct 1 ms 2232 KB OK (n = 3, answer = YES)
8 Correct 1 ms 2232 KB OK (n = 3, answer = YES)
9 Correct 1 ms 2232 KB OK (n = 3, answer = YES)
10 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
11 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
12 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
13 Correct 1 ms 2396 KB OK (n = 3, answer = NO)
14 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
15 Correct 1 ms 2396 KB OK (n = 3, answer = YES)
16 Correct 1 ms 2396 KB OK (n = 3, answer = NO)
17 Correct 1 ms 2396 KB OK (n = 3, answer = NO)
18 Correct 4 ms 2396 KB OK (n = 100, answer = NO)
19 Correct 2 ms 2396 KB OK (n = 100, answer = YES)
20 Correct 1 ms 2396 KB OK (n = 12, answer = YES)
21 Correct 1 ms 2396 KB OK (n = 12, answer = YES)
22 Correct 1 ms 2348 KB OK (n = 12, answer = NO)
23 Correct 2 ms 2396 KB OK (n = 12, answer = NO)
24 Correct 1 ms 2392 KB OK (n = 12, answer = YES)
25 Correct 1 ms 2276 KB OK (n = 12, answer = YES)
26 Correct 2 ms 2232 KB OK (n = 12, answer = YES)
27 Correct 1 ms 2396 KB OK (n = 12, answer = YES)
28 Correct 2 ms 2396 KB OK (n = 6, answer = YES)
29 Correct 2 ms 2396 KB OK (n = 12, answer = YES)
30 Correct 4 ms 2396 KB OK (n = 100, answer = NO)
31 Correct 2 ms 2396 KB OK (n = 100, answer = YES)
32 Correct 2 ms 2396 KB OK (n = 100, answer = NO)
33 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
34 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
35 Correct 2 ms 2396 KB OK (n = 100, answer = YES)
36 Correct 3 ms 2232 KB OK (n = 100, answer = YES)
37 Correct 2 ms 2460 KB OK (n = 28, answer = YES)
38 Correct 2 ms 2396 KB OK (n = 27, answer = YES)
39 Correct 3 ms 2396 KB OK (n = 90, answer = YES)
40 Correct 5 ms 2392 KB OK (n = 100, answer = YES)
41 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
42 Correct 3 ms 2456 KB OK (n = 10, answer = YES)
43 Correct 4 ms 2396 KB OK (n = 100, answer = YES)
44 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
45 Correct 3 ms 2464 KB OK (n = 100, answer = YES)
46 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
47 Correct 4 ms 2396 KB OK (n = 100, answer = NO)
48 Correct 5 ms 2476 KB OK (n = 100, answer = NO)
49 Correct 3 ms 2392 KB OK (n = 100, answer = NO)
50 Correct 2 ms 2396 KB OK (n = 100, answer = YES)
51 Correct 2 ms 2396 KB OK (n = 100, answer = YES)
52 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
53 Correct 2 ms 2392 KB OK (n = 100, answer = YES)
54 Correct 3 ms 2396 KB OK (n = 100, answer = YES)
55 Correct 125 ms 2552 KB OK (n = 10000, answer = YES)
56 Correct 149 ms 2392 KB OK (n = 10000, answer = YES)
57 Correct 141 ms 2652 KB OK (n = 10000, answer = YES)
58 Correct 197 ms 2396 KB OK (n = 10000, answer = YES)
59 Incorrect 131 ms 2392 KB item #29 is taken twice
60 Halted 0 ms 0 KB -