Submission #796949

# Submission time Handle Problem Language Result Execution time Memory
796949 2023-07-29T00:33:27 Z HaroldVemeno Vision Program (IOI19_vision) C++17
24 / 100
8 ms 1400 KB
#include "vision.h"

#include <bits/stdc++.h>

#ifdef GUDEB
    #define D(x) cerr << #x << ": " << (x) << '\n';
    #define ifdeb if(true)
#else
    #define D(x) ;
    #define ifdeb if(false)
#endif

#define all(x) begin(x), end(x)

using namespace std;
using ull = unsigned long long;
using ll = long long;
// #define int ll;

pair<int, int> add3(int a, int b, int c) {
    int no = add_not(add_or({a, b, c}));
    int na = add_not(add_and({a, b, c}));
    int xr = add_xor({a, b, c});
    int cr = add_xor({na, no, xr});
    return {xr, cr};
}

void construct_network(int H, int W, int K) {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    int zero = add_xor({0, 0});
    int one = add_not(zero);

    vector<int> rows(H);
    vector<int> cols(W);

    for(int i = 0; i < H; ++i) {
        vector<int> row;
        for(int j = i*W; j < (i+1)*W; ++j) {
            row.push_back(j);
        }
        rows[i] = add_or(row);
    }
    for(int i = 0; i < W; ++i) {
        vector<int> col;
        for(int j = i; j < H*W; j += W) {
            col.push_back(j);
        }
        cols[i] = add_or(col);
    }
    vector<int> d1(10);
    for(int d = 0; d < 10; ++d) {
        vector<int> spcs;
        int l = 1 << d;
        for(int i = 0; i+l < H; ++i) {
            spcs.push_back(add_and({rows[i], rows[i+l]}));
        }
        spcs.push_back(zero);
        d1[d] = add_or(spcs);
    }
    vector<int> d2(10);
    for(int d = 0; d < 10; ++d) {
        vector<int> spcs;
        int l = 1 << d;
        for(int i = 0; i+l < W; ++i) {
            spcs.push_back(add_and({cols[i], cols[i+l]}));
        }
        spcs.push_back(zero);
        d2[d] = add_or(spcs);
    }
    vector<int> cr(11, zero);
    vector<int> d3(10);
    for(int d = 0; d < 10; ++d) {
        auto p = add3(d1[d], d2[d], cr[d]);
        d3[d] = p.first;
        cr[d+1] = p.second;
    }

    vector<int> fd3(10);

    for(int d = 0; d < 10; ++d) {
        if(K & (1 << d)) {
            fd3[d] = d3[d];
        } else {
            fd3[d] = add_not(d3[d]);
        }
    }

    add_and(fd3);
}

Compilation message

vision.cpp: In function 'void construct_network(int, int, int)':
vision.cpp:32:9: warning: unused variable 'one' [-Wunused-variable]
   32 |     int one = add_not(zero);
      |         ^~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 0 ms 212 KB Output is correct
13 Correct 0 ms 212 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 0 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 0 ms 212 KB Output is correct
13 Correct 0 ms 212 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 0 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 0 ms 212 KB Output is correct
19 Incorrect 0 ms 212 KB on inputs (0, 0), (0, 3), expected 1, but computed 0
20 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 0 ms 212 KB Output is correct
13 Correct 0 ms 212 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 0 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 0 ms 212 KB Output is correct
19 Incorrect 0 ms 212 KB on inputs (0, 0), (0, 3), expected 1, but computed 0
20 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 0 ms 212 KB Output is correct
13 Correct 0 ms 212 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 0 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 0 ms 212 KB Output is correct
19 Incorrect 0 ms 212 KB on inputs (0, 0), (0, 3), expected 1, but computed 0
20 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 456 KB Output is correct
2 Incorrect 1 ms 468 KB on inputs (0, 0), (0, 99), expected 1, but computed 0
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Incorrect 1 ms 340 KB on inputs (0, 0), (3, 28), expected 1, but computed 0
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 8 ms 1400 KB Output is correct
2 Correct 1 ms 300 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 2 ms 468 KB Output is correct
5 Correct 1 ms 432 KB Output is correct
6 Correct 1 ms 468 KB Output is correct
7 Correct 5 ms 936 KB Output is correct
8 Correct 6 ms 852 KB Output is correct
9 Correct 8 ms 1324 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 1 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 0 ms 212 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 0 ms 212 KB Output is correct
13 Correct 0 ms 212 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 0 ms 212 KB Output is correct
16 Correct 0 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 0 ms 212 KB Output is correct
19 Incorrect 0 ms 212 KB on inputs (0, 0), (0, 3), expected 1, but computed 0
20 Halted 0 ms 0 KB -