Submission #246992

#TimeUsernameProblemLanguageResultExecution timeMemory
246992stoyan_malininVision Program (IOI19_vision)C++14
Compilation error
0 ms0 KiB
#include "vision.h" //#include "grader.cpp" #include<iostream> #include<cstring> #include<vector> int n, m, k; const int MAXLog = 15; int zero, one; struct Number { int b[20]; Number() { for(int bit = 0;bit<MAXLog;bit++) { this->b[bit] = zero; } } Number(int x) { for(int bit = 0;bit<MAXLog;bit++) { this->b[bit] = (((x>>bit)&1)==0?zero:one); } } int getVal() { int out = 0; //for(int bit = 0;bit<MAXLog;bit++) out += memory_cells[ b[bit] ]*(1<<bit); return out; } int &operator [](int ind) { return b[ind]; } }; Number operator +(Number A, Number B) { Number C; int toAdd = zero; for(int i = 0;i<MAXLog;i++) { C[i] = add_xor({toAdd, A[i], B[i]}); toAdd = add_or({add_and({toAdd, A[i]}), add_and({toAdd, B[i]}), add_and({A[i], B[i]})}); } return C; } Number operator -(Number A, Number B) { Number C; int toRem = zero; for(int i = 0;i<MAXLog;i++) { C[i] = add_xor({toRem, A[i], B[i]}); toRem = add_or({add_and({toRem, A[i], B[i]}), add_and({add_not(A[i]), add_or({toRem, B[i]})})}); } return C; } int cell2Pos(int r, int c) { return n*r + c; } void init() { vector <int> all; for(int i = 0;i<n;i++) { for(int j = 0;j<m;j++) { all.push_back(cell2Pos(i, j)); } } zero = add_and(all); one = add_or(all); } Number getDiff(vector <int> &v) { Number A, B; int active = one; for(int i = 0;i<v.size();i++) { int newVal = add_and({active, v[i]}); for(int bit = 0;bit<8;bit++) { if(((i>>bit)&1)==1) { A[bit] = add_or({A[bit], newVal}); } } active = add_and({active, add_not(v[i])}); } active = one; for(int i = v.size()-1;i>=0;i--) { int newVal = add_and({active, v[i]}); for(int bit = 0;bit<8;bit++) { if(((i>>bit)&1)==1) { B[bit] = add_or({B[bit], newVal}); } } active = add_and({active, add_not(v[i])}); } Number diff = B - A; return diff; } void construct_network(int H, int W, int K) { n = H; m = W; k = K; init(); vector <int> v; for(int i = 0;i<n;i++) { vector <int> ask; for(int j = 0;j<m;j++) ask.push_back(cell2Pos(i, j)); v.push_back(add_xor(ask)); } Number A = getDiff(v); v.clear(); for(int j = 0;j<m;j++) { vector <int> ask; for(int i = 0;i<n;i++) ask.push_back(cell2Pos(i, j)); v.push_back(add_xor(ask)); } Number B = getDiff(v); Number sum = A + B; vector <int> requirements; for(int bit = 0;bit<MAXLog;bit++) { int val = (((k>>bit)&1)==0?zero:one); requirements.push_back(add_not(add_xor({val, sum[bit]}))); } add_and(requirements); }

Compilation message (stderr)

vision.cpp: In function 'void init()':
vision.cpp:81:5: error: 'vector' was not declared in this scope
     vector <int> all;
     ^~~~~~
vision.cpp:81:5: note: suggested alternative:
In file included from /usr/include/c++/7/vector:64:0,
                 from vision.h:5,
                 from vision.cpp:1:
/usr/include/c++/7/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
vision.cpp:81:13: error: expected primary-expression before 'int'
     vector <int> all;
             ^~~
vision.cpp:86:13: error: 'all' was not declared in this scope
             all.push_back(cell2Pos(i, j));
             ^~~
vision.cpp:86:13: note: suggested alternative: 'a64l'
             all.push_back(cell2Pos(i, j));
             ^~~
             a64l
vision.cpp:90:20: error: 'all' was not declared in this scope
     zero = add_and(all);
                    ^~~
vision.cpp:90:20: note: suggested alternative: 'a64l'
     zero = add_and(all);
                    ^~~
                    a64l
vision.cpp: At global scope:
vision.cpp:94:16: error: 'vector' was not declared in this scope
 Number getDiff(vector <int> &v)
                ^~~~~~
vision.cpp:94:16: note: suggested alternative:
In file included from /usr/include/c++/7/vector:64:0,
                 from vision.h:5,
                 from vision.cpp:1:
/usr/include/c++/7/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
vision.cpp:94:24: error: expected primary-expression before 'int'
 Number getDiff(vector <int> &v)
                        ^~~
vision.cpp:95:1: error: expected ',' or ';' before '{' token
 {
 ^
vision.cpp: In function 'void construct_network(int, int, int)':
vision.cpp:139:5: error: 'vector' was not declared in this scope
     vector <int> v;
     ^~~~~~
vision.cpp:139:5: note: suggested alternative:
In file included from /usr/include/c++/7/vector:64:0,
                 from vision.h:5,
                 from vision.cpp:1:
/usr/include/c++/7/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
vision.cpp:139:13: error: expected primary-expression before 'int'
     vector <int> v;
             ^~~
vision.cpp:142:17: error: expected primary-expression before 'int'
         vector <int> ask;
                 ^~~
vision.cpp:143:32: error: 'ask' was not declared in this scope
         for(int j = 0;j<m;j++) ask.push_back(cell2Pos(i, j));
                                ^~~
vision.cpp:145:9: error: 'v' was not declared in this scope
         v.push_back(add_xor(ask));
         ^
vision.cpp:145:29: error: 'ask' was not declared in this scope
         v.push_back(add_xor(ask));
                             ^~~
vision.cpp:147:24: error: 'v' was not declared in this scope
     Number A = getDiff(v);
                        ^
vision.cpp:152:17: error: expected primary-expression before 'int'
         vector <int> ask;
                 ^~~
vision.cpp:153:32: error: 'ask' was not declared in this scope
         for(int i = 0;i<n;i++) ask.push_back(cell2Pos(i, j));
                                ^~~
vision.cpp:155:29: error: 'ask' was not declared in this scope
         v.push_back(add_xor(ask));
                             ^~~
vision.cpp:160:13: error: expected primary-expression before 'int'
     vector <int> requirements;
             ^~~
vision.cpp:164:9: error: 'requirements' was not declared in this scope
         requirements.push_back(add_not(add_xor({val, sum[bit]})));
         ^~~~~~~~~~~~
vision.cpp:167:13: error: 'requirements' was not declared in this scope
     add_and(requirements);
             ^~~~~~~~~~~~