Submission #931092

#TimeUsernameProblemLanguageResultExecution timeMemory
931092boris_mihovAncient Machine (JOI21_ancient_machine)C++17
Compilation error
0 ms0 KiB
#include "Anna.h" #include <algorithm> #include <iostream> #include <cassert> #include <vector> typedef long long llong; const int BUCKET_SIZE = 73; const int MYLOG = 51; llong fib[BUCKET_SIZE + 5]; struct FibbonacciConverter { std::string getString(std::string s) { while (s.size() % BUCKET_SIZE != 0) { s += '0'; } std::string res; for (int i = 0 ; i < s.size() ; i += BUCKET_SIZE) { llong currNum = 0; for (int j = i ; j < i + BUCKET_SIZE ; ++j) { if (s[j] == '1') currNum += fib[j - i]; } assert(currNum < (1LL << MYLOG)); for (int log = MYLOG - 1 ; log >= 0 ; --log) { if (currNum & (1LL << log)) { res += '1'; } else { res += '0'; } } } return res; } std::string fromString(std::string s) { assert(s.size() % MYLOG == 0); std::string res; for (int i = 0 ; i < s.size() ; i += MYLOG) { llong currNum = 0; for (int j = i ; j < i + MYLOG ; ++j) { currNum *= 2; if (s[j]) { currNum++; } } std::string toAdd; for (int pos = BUCKET_SIZE ; pos > 0 ; --pos) { if (currNum >= fib[pos - 1]) { toAdd += '1'; currNum -= fib[pos - 1]; } else { toAdd += '0'; } } std::reverse(toAdd.begin(), toAdd.end()); res += toAdd; } return res; } }; void Anna(int N, std::vector <char> s) { fib[0] = 1; fib[1] = 2; for (int i = 2 ; i < BUCKET_SIZE + 5 ; ++i) { fib[i] = fib[i - 1] + fib[i - 2]; } bool foundX = false; std::string toConvert; for (int i = 0 ; i < N ; ++i) { if (!foundX && s[i] == 'X') { foundX = true; // toConvert += '1'; Send(1); i++; } else if (foundX && s[i] == 'Z') { Send(1); i++; } else { Send(0); } } }
#include "Anna.h" #include <algorithm> #include <iostream> #include <cassert> #include <vector> typedef long long llong; const int BUCKET_SIZE = 73; const int MYLOG = 51; llong fib[BUCKET_SIZE + 5]; struct FibbonacciConverter { std::string getString(std::string s) { while (s.size() % BUCKET_SIZE != 0) { s += '0'; } std::string res; for (int i = 0 ; i < s.size() ; i += BUCKET_SIZE) { llong currNum = 0; for (int j = i ; j < i + BUCKET_SIZE ; ++j) { if (s[j] == '1') currNum += fib[j - i]; } assert(currNum < (1LL << MYLOG)); for (int log = MYLOG - 1 ; log >= 0 ; --log) { if (currNum & (1LL << log)) { res += '1'; } else { res += '0'; } } } return res; } std::string fromString(std::string s) { assert(s.size() % MYLOG == 0); std::string res; for (int i = 0 ; i < s.size() ; i += MYLOG) { llong currNum = 0; for (int j = i ; j < i + MYLOG ; ++j) { currNum *= 2; if (s[j]) { currNum++; } } std::string toAdd; for (int pos = BUCKET_SIZE ; pos > 0 ; --pos) { if (currNum >= fib[pos - 1]) { toAdd += '1'; currNum -= fib[pos - 1]; } else { toAdd += '0'; } } std::reverse(toAdd.begin(), toAdd.end()); res += toAdd; } return res; } }; void Anna(int N, std::vector <char> s) { fib[0] = 1; fib[1] = 2; for (int i = 2 ; i < BUCKET_SIZE + 5 ; ++i) { fib[i] = fib[i - 1] + fib[i - 2]; } bool foundX = false; std::string toConvert; for (int i = 0 ; i < N ; ++i) { if (!foundX && s[i] == 'X') { foundX = true; // toConvert += '1'; Send(1); i++; } else if (foundX && s[i] == 'Z') { Send(1); i++; } else { Send(0); } } }

Compilation message (stderr)

Anna.cpp: In member function 'std::string FibbonacciConverter::getString(std::string)':
Anna.cpp:22:28: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   22 |         for (int i = 0 ; i < s.size() ; i += BUCKET_SIZE)
      |                          ~~^~~~~~~~~~
Anna.cpp: In member function 'std::string FibbonacciConverter::fromString(std::string)':
Anna.cpp:50:28: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   50 |         for (int i = 0 ; i < s.size() ; i += MYLOG)
      |                          ~~^~~~~~~~~~

Bruno.cpp: In member function 'std::string FibbonacciConverter::getString(std::string)':
Bruno.cpp:22:28: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   22 |         for (int i = 0 ; i < s.size() ; i += BUCKET_SIZE)
      |                          ~~^~~~~~~~~~
Bruno.cpp: In member function 'std::string FibbonacciConverter::fromString(std::string)':
Bruno.cpp:50:28: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   50 |         for (int i = 0 ; i < s.size() ; i += MYLOG)
      |                          ~~^~~~~~~~~~
/usr/bin/ld: /tmp/ccwLSp8t.o: in function `Anna(int, std::vector<char, std::allocator<char> >)':
Bruno.cpp:(.text+0x9a): undefined reference to `Send(int)'
/usr/bin/ld: Bruno.cpp:(.text+0xe6): undefined reference to `Send(int)'
/usr/bin/ld: Bruno.cpp:(.text+0xfb): undefined reference to `Send(int)'
/usr/bin/ld: Bruno.cpp:(.text+0x11c): undefined reference to `Send(int)'
/usr/bin/ld: /tmp/ccYB2EFv.o: in function `main':
grader_bruno.cpp:(.text.startup+0x24d): undefined reference to `Bruno(int, int, std::vector<int, std::allocator<int> >)'
collect2: error: ld returned 1 exit status