gift.cpp: In function 'int construct(int, int, vi, vi, vi)':
gift.cpp:52:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   52 |         for (int i = 1; i < ones.size(); i++) {
      |                         ~~^~~~~~~~~~~~~
gift.cpp:74:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   74 |         for (int i = 1; i < twos.size(); i++) {
      |                         ~~^~~~~~~~~~~~~
gift.cpp:88:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   88 |     while (one < onesA.size() && two < twosA.size()){
      |            ~~~~^~~~~~~~~~~~~~
gift.cpp:88:38: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   88 |     while (one < onesA.size() && two < twosA.size()){
      |                                  ~~~~^~~~~~~~~~~~~~
gift.cpp:92:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   92 |         if (one >= onesA.size()) break;
      |             ~~~~^~~~~~~~~~~~~~~
gift.cpp:100:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  100 |         if (one < onesA.size() && two < twosA.size()){
      |             ~~~~^~~~~~~~~~~~~~
gift.cpp:100:39: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  100 |         if (one < onesA.size() && two < twosA.size()){
      |                                   ~~~~^~~~~~~~~~~~~~
gift.cpp:124:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  124 |         if (one < onesA.size() || (one >= onesA.size() && two >= twosA.size())){
      |             ~~~~^~~~~~~~~~~~~~
gift.cpp:124:40: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  124 |         if (one < onesA.size() || (one >= onesA.size() && two >= twosA.size())){
      |                                    ~~~~^~~~~~~~~~~~~~~
gift.cpp:124:63: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  124 |         if (one < onesA.size() || (one >= onesA.size() && two >= twosA.size())){
      |                                                           ~~~~^~~~~~~~~~~~~~~
gift.cpp:125:42: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  125 |             while (i > onesB[one] && one < onesA.size()) one++;
      |                                      ~~~~^~~~~~~~~~~~~~
gift.cpp: In function 'void setIO(std::string)':
gift.cpp:36:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   36 |     freopen((name+".in").c_str(), "r", stdin); // see Input & Output
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gift.cpp:37:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   37 |     freopen((name+".out").c_str(), "w", stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~