Submission #1081250

#TimeUsernameProblemLanguageResultExecution timeMemory
1081250anango휴가 (IOI14_holiday)C++17
Compilation error
0 ms0 KiB
#include"holiday.h"
#include <bits/stdc++.h>
#define vector basic_string
using namespace std;
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
typedef tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update> ordered_set;
#define int long long
int INF = 1LL<<62;
const int sz = 262144;
vector<int> revcoords;
class SegmentTree {
public:
  vector<int> tree;
  int n;
  ordered_set current_indices;
  SegmentTree(int numelem) {
   tree=vector<int>(sz,0);
   n=numelem;
   //cout << "making segtree " << n << endl;
  }
  void update(int v, int l, int r, int tl, int tr, int addend) {
   
   if (l>tr || r<tl) return;
   if (l<=tl && tr<=r) {
     assert(l==r);
     tree[v]+=addend;
     return;
   }
   int m = (tl+tr)/2;
   update(2*v,l,r,tl,m,addend);
   update(2*v+1,l,r,m+1,tr,addend);
   tree[v] = tree[2*v]+tree[2*v+1];
   
  }
 
  int query(int v, int l, int r, int tl, int tr) {
   if (l>tr || r<tl) return 0;
   if (l<=tl && tr<=r) {
     //cout << "qend " << tl <<" " << tr <<" " << tree[v] << endl;
     return tree[v];
   }
   int m = (tl+tr)/2;
   return query(2*v,l,r,tl,m)+query(2*v+1,l,r,m+1,tr);
  }
 
  void ins(int index, int weight) { 
   //weight must be weights[index]
   int rc = revcoords[index];
   current_indices.insert(rc);
   //cout << "updating " << rc <<" " << weight << endl;
   update(1,rc,rc,0,131071,weight);
  }
 
  void era(int index, int weight) { 
   //weight must be weights[index]
   int rc = revcoords[index];
   current_indices.erase(rc);
   update(1,rc,rc,0,131071,-weight);
  }
 
  int get_sum_maximals(int k) {
   //(1 indexed, so k=1 means you just want max etc)
   if (current_indices.size()<k) {
     return tree[1]; //sum of everything
   }
   if (k<=0) return 0;
   int reqcid = current_indices.size(); 
   reqcid-=k;
   int req_index = *current_indices.find_by_order(reqcid);
   int ans = query(1,req_index,131071,0,131071);
   //cout << "getting " << k <<" " << current_indices.size() <<" " << reqcid <<" " << req_index << " " << ans << endl;
   return ans;
  }
};
 
vector<int> optimal_k;
vector<int> answers;
 
int state = -1; //state i means it contains 0 to i inclusive
SegmentTree st(1);
 
void solve(int l, int r, vector<int> &weights) {
  if (l>r) return;
   //solve for all d
   int m = (l+r)/2;
  //cout << "solving " << l <<" " << m <<" " << r << endl;
  int vleft = optimal_k[l-1];
  int vright = optimal_k[r+1];
  //find optimal_k[m], by going from vleft to vright
  while (state>vleft) {
   st.era(state,weights[state]);
   state--;
  }
  while (state<vleft) {
     state++;
     st.ins(state,weights[state]);
   }
   //state is now equal to m
   int opk = -1;
   int curbest = -1;
   for (int k=vleft; k<=vright; k++) {
     if (m-k-1<=0) continue;
     int kans = st.get_sum_maximals(m-k-1);
     //cout << "doing " << k <<" " << kans << " " << m-k-1 << " " << vleft << " " << curbest <<" " << opk << endl;
     if (kans>curbest) {
        curbest = kans;
        opk = k;
     }
     assert(state==k);
     state++;
     st.ins(state,weights[state]);
   }
   optimal_k[m] = opk;
   answers[m] = curbest;
   //cout << "solved " << l <<" " << m<<" " << r <<" " << vleft <<" "<< vright << " " << opk <<" " << curbest << endl;
   if (l<r) {
     solve(l,m-1,weights);
     solve(m+1,r,weights);
  }
  return;
}
vector<int> solve_for_all_d(int n, vector<int> weights) {
  st = SegmentTree(n);
  //ignore the middle itself
  revcoords=vector<int>(n,-1);
  vector<int> coords(n); iota(coords.begin(), coords.end(), (int)0);
 
  for (int i=0; i<n; i++) {
   //cout << weights[i] <<" ";
  }
  //cout << endl << endl;
  sort(coords.begin(), coords.end(),[&](const int i1, const int i2) {
   return weights[i1]<weights[i2];
  });
  for (int i=0; i<coords.size(); i++) {
   //revcoords is what position this index takes in the sorted list by weight
   revcoords[coords[i]] = i;
  }
  //find the optimal k for each d using divide and conquer
  //taking 0 through k
  //consider d<=2n
  optimal_k = vector<int>(2*n+1,-1);
  optimal_k[2] = 0;
  optimal_k[2*n] = n-1;
  answers=vector<int>(2*n+1,-1);
  answers[0] = answers[1] = 0;
  answers[2] = weights[0];
  answers[2*n] = accumulate(weights.begin(), weights.end(), (int)0);
 
  state = -1;
  solve(3,2*n-1,weights);
 
  for (int i=0; i<2*n+1; i++) {
   //cout << i <<" " << optimal_k[i] <<" " << answers[i] << endl;
  }
  
  return answers;
}
 
 
void solvedouble(int l, int r, vector<int> &weights) {
  if (l>r) return;
  //solve for all d
  int m = (l+r)/2;
  //cout << "solving " << l <<" " << m <<" " << r << endl;
  int vleft = optimal_k[l-1];
  int vright = optimal_k[r+1];
  //find optimal_k[m], by going from vleft to vright
  while (state>vleft) {
   st.era(state,weights[state]);
   state--;
  }
  while (state<vleft) {
   state++;
   st.ins(state,weights[state]);
  }
  //state is now equal to m
  int opk = -1;
  int curbest = -1;
  for (int k=vleft; k<=vright; k++) {
   if (m-2*k-2<=0) continue;
   int kans = st.get_sum_maximals(m-2*k-2);
   //cout << "doing " << k <<" " << kans << " " << m-2*k-1 << " " << vleft << " " << curbest <<" " << opk << " " << state << endl;
   if (kans>curbest) {
     curbest = kans;
     opk = k;
   }
   assert(state==k);
   state++;
   st.ins(state,weights[state]);
  }
  optimal_k[m] = opk;
  answers[m] = curbest;
  
  //cout << "solved " << l <<" " << m<<" " << r <<" " << vleft <<" "<< vright << " " << opk <<" " << curbest << endl;
  if (l<r) {
   solvedouble(l,m-1,weights);
   solvedouble(m+1,r,weights);
  }
  return;
  
}
 
vector<int> solve_for_all_d_double(int n, vector<int> weights) {
   if (n==0) {
      return {0};
   }
   if (n==1) {
   return {0,0,0,weights[0]};
  }
  st = SegmentTree(n);
  //ignore the middle itself
  revcoords=vector<int>(n,-1);
  vector<int> coords(n); iota(coords.begin(), coords.end(), (int)0);
 
  for (int i=0; i<n; i++) {
   //cout << weights[i] <<" ";
  }
  //cout << endl << endl;
  sort(coords.begin(), coords.end(),[&](const int i1, const int i2) {
   return weights[i1]<weights[i2];
  });
  for (int i=0; i<coords.size(); i++) {
   //revcoords is what position this index takes in the sorted list by weight
   revcoords[coords[i]] = i;
  }
  //find the optimal k for each d using divide and conquer
  //taking 0 through k
  //consider d<=2n
  optimal_k = vector<int>(3*n+1,-1);
  optimal_k[3] = 0;
  optimal_k[3*n] = n-1;
  answers=vector<int>(3*n+1,-1);
  answers[0] = answers[1] = answers[2] = 0;
  answers[3] = weights[0];
  answers[3*n] = accumulate(weights.begin(), weights.end(), (int)0);
 
  state = -1;
  solvedouble(4,3*n-1,weights);
 
  for (int i=0; i<3*n+1; i++) {
   //cout << "lefting " << i <<" " << optimal_k[i] <<" " << answers[i] << endl;
  }
  
  return answers;
}
 
 
vector<int> attractions;
int best = -INF;
long long findMaxAttraction(signed n, signed start, signed d, signed attraction[]) {
  for (int i=0; i<n; i++) {
   attractions.push_back(attraction[i]);
  }
  vector<int> right;
  for (int i=start; i<n; i++) {
   right.push_back(attractions[i]);
  }
  vector<int> left;
  for (int i=start-1; i>=0; i--) {
   left.push_back(attractions[i]);
  }
  vector<int> right_ans = solve_for_all_d(right.size(), right);
  vector<int> left_ans = solve_for_all_d_double(left.size(), left);
  while (right_ans.size()<=d+8) {
   right_ans.push_back(right_ans.back());
  }
  while (left_ans.size()<=d+8) {
   left_ans.push_back(left_ans.back());
  }
  for (int i=0; i<right_ans.size(); i++) {
   //cout << "right " << i <<" " << right_ans[i] << endl;
  }
  for (int i=0; i<left_ans.size(); i++) {
   //cout << "left " << i <<" " << left_ans[i] << endl;
  }
  //left then right
  for (int days_left=0; days_left<=d+1; days_left++) {
   int days_right = d-days_left+1;
   if (days_right<0) continue;
   int total_ans = left_ans[days_left]+right_ans[days_right];
   best=max(best,total_ans);
  }
 
  start=n-start-1;
  right.clear();
  left.clear();
  reverse(attractions.begin(), attractions.end());
  for (int i=start; i<n; i++) {
   right.push_back(attractions[i]);
  }
  for (int i=start-1; i>=0; i--) {
   left.push_back(attractions[i]);
  }
  right_ans = solve_for_all_d(right.size(), right);
  left_ans = solve_for_all_d_double(left.size(), left);
  while (right_ans.size()<=d+8) {
   right_ans.push_back(right_ans.back());
  }
  while (left_ans.size()<=d+8) {
   left_ans.push_back(left_ans.back());
  }
  for (int i=0; i<right_ans.size(); i++) {
   //cout << "right " << i <<" " << right_ans[i] << endl;
  }
  for (int i=0; i<left_ans.size(); i++) {
   //cout << "left " << i <<" " << left_ans[i] << endl;
  }
  //left then right
  for (int days_left=0; days_left<=d+1; days_left++) {
   int days_right = d-days_left+1;
   if (days_right<0) continue;
   int total_ans = left_ans[days_left]+right_ans[days_right];
   best=max(best,total_ans);
  }
 
 
 
  return best;
}

Compilation message (stderr)

holiday.cpp: In member function 'long long int SegmentTree::get_sum_maximals(long long int)':
holiday.cpp:65:30: warning: comparison of integer expressions of different signedness: '__gnu_pbds::detail::bin_search_tree_set<int, __gnu_pbds::null_type, std::less<int>, __gnu_pbds::detail::tree_traits<int, __gnu_pbds::null_type, std::less<int>, __gnu_pbds::tree_order_statistics_node_update, __gnu_pbds::rb_tree_tag, std::allocator<char> >, std::allocator<char> >::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   65 |    if (current_indices.size()<k) {
      |        ~~~~~~~~~~~~~~~~~~~~~~^~
holiday.cpp: In function 'std::__cxx11::basic_string<long long int> solve_for_all_d(long long int, std::__cxx11::basic_string<long long int>)':
holiday.cpp:128:23: error: no matching function for call to 'std::__cxx11::basic_string<long long int>::basic_string(long long int&)'
  128 |   vector<int> coords(n); iota(coords.begin(), coords.end(), (int)0);
      |                       ^
In file included from /usr/include/c++/10/string:55,
                 from /usr/include/c++/10/bits/locale_classes.h:40,
                 from /usr/include/c++/10/bits/ios_base.h:41,
                 from /usr/include/c++/10/ios:42,
                 from /usr/include/c++/10/istream:38,
                 from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from holiday.cpp:2:
/usr/include/c++/10/bits/basic_string.h:650:2: note: candidate: 'template<class _Tp, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Tp&, const _Alloc&) [with _Tp = _Tp; <template-parameter-2-2> = <template-parameter-1-2>; _CharT = long long int; _Traits = std::char_traits<long long int>; _Alloc = std::allocator<long long int>]'
  650 |  basic_string(const _Tp& __t, const _Alloc& __a = _Alloc())
      |  ^~~~~~~~~~~~
/usr/include/c++/10/bits/basic_string.h:650:2: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/10/bits/move.h:57,
                 from /usr/include/c++/10/bits/stl_pair.h:59,
                 from /usr/include/c++/10/bits/stl_algobase.h:64,
                 from /usr/include/c++/10/bits/specfun.h:45,
                 from /usr/include/c++/10/cmath:1927,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41,
                 from holiday.cpp:2:
/usr/include/c++/10/type_traits: In substitution of 'template<bool _Cond, class _Tp> using enable_if_t = typename std::enable_if::type [with bool _Cond = false; _Tp = void]':
/usr/include/c++/10/bits/basic_string.h:117:8:   required by substitution of 'template<class _CharT, class _Traits, class _Alloc> template<class _Tp, class _Res> using _If_sv = std::enable_if_t<std::__and_<std::is_convertible<const _Tp&, std::basic_string_view<_CharT, _Traits> >, std::__not_<std::is_convertible<const _Tp*, const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>*> >, std::__not_<std::is_convertible<const _Tp&, const _CharT*> > >::value, _Res> [with _Tp = long long int; _Res = void; _CharT = long long int; _Traits = std::char_traits<long long int>; _Alloc = std::allocator<long long int>]'
/usr/include/c++/10/bits/basic_string.h:648:30:   required from here
/usr/include/c++/10/type_traits:2554:11: error: no type named 'type' in 'struct std::enable_if<false, void>'
 2554 |     using enable_if_t = typename enable_if<_Cond, _Tp>::type;
      |           ^~~~~~~~~~~
In file included from /usr/include/c++/10/string:55,
                 from /usr/include/c++/10/bits/locale_classes.h:40,
                 from /usr/include/c++/10/bits/ios_base.h:41,
                 from /usr/include/c++/10/ios:42,
                 from /usr/include/c++/10/istream:38,
                 from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from holiday.cpp:2:
/usr/include/c++/10/bits/basic_string.h:639:2: note: candidate: 'template<class _Tp, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Tp&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&) [with _Tp = _Tp; <template-parameter-2-2> = <template-parameter-1-2>; _CharT = long long int; _Traits = std::char_traits<long long int>; _Alloc = std::allocator<long long int>]'
  639 |  basic_string(const _Tp& __t, size_type __pos, size_type __n,
      |  ^~~~~~~~~~~~
/usr/include/c++/10/bits/basic_string.h:639:2: note:   template argument deduction/substitution failed:
holiday.cpp:128:23: note:   candidate expects 4 arguments, 1 provided
  128 |   vector<int> coords(n); iota(coords.begin(), coords.end(), (int)0);
      |                       ^
In file included from /usr/include/c++/10/string:55,
                 from /usr/include/c++/10/bits/locale_classes.h:40,
                 from /usr/include/c++/10/bits/ios_base.h:41,
                 from /usr/include/c++/10/ios:42,
                 from /usr/include/c++/10/istream:38,
                 from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from holiday.cpp:2:
/usr/include/c++/10/bits/basic_string.h:625:9: note: candidate: 'template<class _InputIterator, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with _InputIterator = _InputIterator; <template-parameter-2-2> = <template-parameter-1-2>; _CharT = long long int; _Traits = std::char_traits<long long int>; _Alloc = std::allocator<long long int>]'
  625 |         basic_string(_InputIterator __beg, _InputIterator __end,
      |         ^~~~~~~~~~~~
/usr/include/c++/10/bits/basic_string.h:625:9: note:   template argument deduction/substitution failed:
holiday.cpp:128:23: note:   candidate expects 3 arguments, 1 provided
  128 |   vector<int> coords(n); iota(coords.begin(), coords.end(), (int)0);
      |                       ^
In file included from /usr/include/c++/10/string:55,
                 from /usr/include/c++/10/bits/locale_classes.h:40,
                 from /usr/include/c++/10/bits/ios_base.h:41,
                 from /usr/include/c++/10/ios:42,
                 from /usr/include/c++/10/istream:38,
                 from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from holiday.cpp:2:
/usr/include/c++/10/bits/basic_string.h:587:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&, const _Alloc&) [with _CharT = long long int; _Traits = std::char_traits<long long int>; _Alloc = std::allocator<long long int>]'
  587 |       basic_string(basic_string&& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/10/bits/basic_string.h:587:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/10/bits/basic_string.h:583:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _Alloc&) [with _CharT = long long int; _Traits = std::char_traits<long long int>; _Alloc = std::allocator<long long int>]'
  583 |       basic_string(const basic_string& __str, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/10/bits/basic_string.h:583:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/10/bits/basic_string.h:579:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::initializer_list<_Tp>, const _Alloc&) [with _CharT = long long int; _Traits = std::char_traits<long long int>; _Alloc = std::allocator<long long int>]'
  579 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/10/bits/basic_string.h:579:45: note:   no known conversion for argument 1 from 'long long int' to 'std::initializer_list<long long int>'
  579 |       basic_string(initializer_list<_CharT> __l, const _Alloc& __a = _Alloc())
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/10/bits/basic_string.h:552:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = long long int; _Traits = std::char_traits<long long int>; _Alloc = std::allocator<long long int>]'
  552 |       basic_string(basic_string&& __str) noexcept
      |       ^~~~~~~~~~~~
/usr/include/c++/10/bits/basic_string.h:552:35: note:   no known conversion for argument 1 from 'long long int' to 'std::__cxx11::basic_string<long long int>&&'
  552 |       basic_string(basic_string&& __str) noexcept
      |                    ~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/10/bits/basic_string.h:540:7: note: candidate: 'template<class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, _CharT, const _Alloc&) [with <template-parameter-2-1> = <template-parameter-1-1>; _CharT = long long int; _Traits = std::char_traits<long long int>; _Alloc = std::allocator<long long int>]'
  540 |       basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/10/bits/basic_string.h:540:7: note:   template argument deduction/substitution failed:
holiday.cpp:128:23: note:   candidate expects 3 arguments, 1 provided
  128 |   vector<int> coords(n); iota(coords.begin(), coords.end(), (int)0);
      |                       ^
In file included from /usr/include/c++/10/string:55,
                 from /usr/include/c++/10/bits/locale_classes.h:40,
                 from /usr/include/c++/10/bits/ios_base.h:41,
                 from /usr/include/c++/10/ios:42,
                 from /usr/include/c++/10/istream:38,
                 from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from holiday.cpp:2:
/usr/include/c++/10/bits/basic_string.h:525:7: note: candidate: 'template<class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with <template-parameter-2-1> = <template-parameter-1-1>; _CharT = long long int; _Traits = std::char_traits<long long int>; _Alloc = std::allocator<long long int>]'
  525 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
/usr/include/c++/10/bits/basic_string.h:525:7: note:   template argument deduction/substitution failed:
holiday.cpp:128:22: note:   cannot convert 'n' (type 'long long int') to type 'const long long int*'
  128 |   vector<int> coords(n); iota(coords.begin(), coords.end(), (int)0);
      |                      ^
In file included from /usr/include/c++/10/string:55,
                 from /usr/include/c++/10/bits/locale_classes.h:40,
                 from /usr/include/c++/10/bits/ios_base.h:41,
                 from /usr/include/c++/10/ios:42,
                 from /usr/include/c++/10/istream:38,
                 from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from holiday.cpp:2:
/usr/include/c++/10/bits/basic_string.h:510:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&) [with _CharT = long long int; _Traits = std::char_traits<long long int>; _Alloc = std::allocator<long long int>; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type = long unsigned int]'
  510 |       basic_string(const _CharT* __s, size_type __n,
      |       ^~~~~~~~~~~~
/usr/include/c++/10/bits/basic_string.h:510:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/10/bits/basic_string.h:492:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&) [with _CharT = long long int; _Traits = std::char_traits<long long int>; _Alloc = std::allocator<long long int>; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type = long unsigned int]'
  492 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/10/bits/basic_string.h:492:7: note:   candidate expects 4 arguments, 1 provided
/usr/include/c++/10/bits/basic_string.h:476:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type) [with _CharT = long long int; _Traits = std::char_traits<long long int>; _Alloc = std::allocator<long long int>; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type = long unsigned int]'
  476 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/10/bits/basic_string.h:476:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/10/bits/basic_string.h:461:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&) [with _CharT = long long int; _Traits = std::char_traits<long long int>; _Alloc = std::allocator<long long int>; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type = long unsigned int]'
  461 |       basic_string(const basic_string& __str, size_type __pos,
      |       ^~~~~~~~~~~~
/usr/include/c++/10/bits/basic_string.h:461:7: note:   candidate expects 3 arguments, 1 provided
/usr/include/c++/10/bits/basic_string.h:448:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = long long int; _Traits = std::char_traits<long long int>; _Alloc = std::allocator<long long int>]'
  448 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
/usr/include/c++/10/bits/basic_string.h:448:40: note:   no known conversion for argument 1 from 'long long int' to 'const std::__cxx11::basic_string<long long int>&'
  448 |       basic_string(const basic_string& __str)
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/10/bits/basic_string.h:440:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Alloc&) [with _CharT = long long int; _Traits = std::char_traits<long long int>; _Alloc = std::allocator<long long int>]'
  440 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~~~~~~~
/usr/include/c++/10/bits/basic_string.h:440:34: note:   no known conversion for argument 1 from 'long long int' to 'const std::allocator<long long int>&'
  440 |       basic_string(const _Alloc& __a) _GLIBCXX_NOEXCEPT
      |                    ~~~~~~~~~~~~~~^~~
/usr/include/c++/10/bits/basic_string.h:431:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string() [with _CharT = long long int; _Traits = std::char_traits<long long int>; _Alloc = std::allocator<long long int>]'
  431 |       basic_string()
      |       ^~~~~~~~~~~~
/usr/include/c++/10/bits/basic_string.h:431:7: note:   candidate expects 0 arguments, 1 provided
/usr/include/c++/10/bits/basic_string.h:145:7: note: candidate: 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::__sv_wrapper, const _Alloc&) [with _CharT = long long int; _Traits = std::char_traits<long long int>; _Alloc = std::allocator<long long int>]'
  145 |       basic_string(__sv_wrapper __svw, const _Alloc& __a)
      |       ^~~~~~~~~~~~
/usr/include/c++/10/bits/basic_string.h:145:7: note:   candidate expects 2 arguments, 1 provided
holiday.cpp:137:18: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  137 |   for (int i=0; i<coords.size(); i++) {
      |                 ~^~~~~~~~~~~~~~
holiday.cpp: In function 'std::__cxx11::basic_string<long long int> solve_for_all_d_double(long long int, std::__cxx11::basic_string<long long int>)':
holiday.cpp:216:23: error: no matching function for call to 'std::__cxx11::basic_string<long long int>::basic_string(long long int&)'
  216 |   vector<int> coords(n); iota(coords.begin(), coords.end(), (int)0);
      |                       ^
In file included from /usr/include/c++/10/string:55,
                 from /usr/include/c++/10/bits/locale_classes.h:40,
                 from /usr/include/c++/10/bits/ios_base.h:41,
                 from /usr/include/c++/10/ios:42,
                 from /usr/include/c++/10/istream:38,
                 from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from holiday.cpp:2:
/usr/include/c++/10/bits/basic_string.h:650:2: note: candidate: 'template<class _Tp, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Tp&, const _Alloc&) [with _Tp = _Tp; <template-parameter-2-2> = <template-parameter-1-2>; _CharT = long long int; _Traits = std::char_traits<long long int>; _Alloc = std::allocator<long long int>]'
  650 |  basic_string(const _Tp& __t, const _Alloc& __a = _Alloc())
      |  ^~~~~~~~~~~~
/usr/include/c++/10/bits/basic_string.h:650:2: note:   template argument deduction/substitution failed:
/usr/include/c++/10/bits/basic_string.h:639:2: note: candidate: 'template<class _Tp, class> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _Tp&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&) [with _Tp = _Tp; <template-parameter-2-2> = <template-parameter-1-2>; _CharT = long long int; _Traits = std::char_traits<long long int>; _Alloc = std::allocator<long long int>]'
  639 |  basic_string(const _Tp& __t, size_type __pos, size_type __n,
      |  ^~~~~~~~~~~~
/usr/include/c++/10/bits/basic_string.h:639:2: note:   template argument deduction/substitution failed:
/var/local/lib/isolate/615/b