Submission #861455

#TimeUsernameProblemLanguageResultExecution timeMemory
861455tosivanmakAliens (IOI16_aliens)C++17
Compilation error
0 ms0 KiB
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double


struct LINE{
  ld m, c, ocpt; ll chosennumbers;
  bool operator ==(const LINE& l)const{
    return l.m==m&&l.c==c&&l.ocpt==ocpt&&l.chosennumbers==chosennumbers;
  }
};
deque<LINE>q;
ll outc[100005],outr[100005],outn,outm,outk,getmin[1000005];
pair<ld,ll> dp[1000005];
vector<pair<ll,ll> >need;
pair<ld,ld> int_pt(LINE a, LINE b){
  ld x=(a.m-b.m)/(b.c-a.c);
  ld y=a.m*x+a.c;
  return {x,y};
}
void insert(LINE l){
    while(!q.empty()&&int_pt(l,q.back()).first<=q.back().ocpt){
      q.pop_back();
    }
    l.ocpt=int_pt(q.back(),l).first;
    q.push_back(l);
}
pair<ld,ll> qry(ld x){
  LINE store={-1e18,-1e18,-1e18,-10000000000000},comp=store;
  while(!q.empty()&&q.front().ocpt<=x){
    store=q.front();
    q.pop_front();
  }
  if(store!=comp){
    q.push_front(store);
  }
  LINE ans=q.front();
  return {ans.m*x+ans.c,ans.chosennumbers};
}
bool ck(ld lambda){
    // I から j まで の一番小さい 解決の後 は I−1 が 解決 すること出来るかな
    // from i to j (i-smallest+1)*(i-smallest+1)+dp[minimum-1]
    // i^2 - i*smallest + i + smallest^2 - smallest + i -smallest +1 +dp[i-1]
    // i^2 + 2*i + smallest^2 - 2* smallest + 1 + dp[i-1] - smallest*i 
    // same for all: i^2 + 2*i
    // slope: -smallest (x = i)
    // constant: smallest^2 - 2*smallest + 1 + dp[i-1]
    // もしかしたら、小さいの数は変わってば、dp[0]が使えます
    // じゃないなら、slope が入ります
    // 一番小さいから、 Alienの cost は +cost です
    for(int i=0;i<need.size();i++){
          // (need[i].first-(cur-1))^2
          // need[i].first^2 - 2*(cur-1)*need[i].first + (cur-1)^2
          // slope: -2*(cur-1)
          // x: need[i].first
          // constant: (cur-1)^2 - (need[i+1].second-need[i].first+1)^2 only if need[i+1].second-need[i].first>=0 + dp[cur]
          // always part: need[i].first^2
          if(i==0){
            dp[i]={(need[i].first-need[i].second+1)*(need[i].first-need[i].second+1)+lambda,1};
              if(i!=need.size()-1){
            //  insert part
            ld slo=-2*(need[i+1].second-1);
            ld con=(need[i+1].second-1)*(need[i+1].second-1);
           if(need[i].first-need[i+1].second>=0){
              con-=(need[i].first-need[i+1].second+1)*(need[i].first-need[i+1].second+1);
            }
            con+=dp[i].first;
            q.push_back({slo,con,-1e18,dp[i].second});
         }
          }
          else{
          pair<ld,ll> take=qry((ld)need[i].first);
         take.first= take.first+lambda+need[i].first*need[i].first;
         take.second++;
         dp[i]=take;
         if(i!=need.size()-1){
            //  insert part
            ld slo=-2*(need[i+1].second-1);
            ld con=(need[i+1].second-1)*(need[i+1].second-1);
            if(need[i].first-need[i+1].second>=0){
              con-=(need[i].first-need[i+1].second+1)*(need[i].first-need[i+1].second+1);
            }
            con+=dp[i].first;
            insert({slo,con,0,dp[i].second});
         }
          }
    }
    while(q.size()){
      q.pop_back();
    }
    return dp[need.size()-1].second<=outk;
    // dp[need.size()-1].
}

ld Aliens(){
   ld l=0,r=(ld)1000000*(ld)1000000;
   while(r-l>=1e-4){
     ld mid=(l+r)/2;
    //  minimum grids
     if(ck(mid)){
        r=mid;
     }
     else{
       l=mid;
     }
   }
   ck(l);
   return dp[need.size()-1].first-l*outk;
}

ll take_photos(int n, int m, int k, std::vector<int> r, std::vector<int> c){
  //convert back to array 1-based and cell 1-based
  outn=n,outm=m,outk=k;
    int storer[n+5], storec[n+5];
    for(int i=1;i<=m;i++){
      getmin[i]=1e18;
    }
    vector<ll>lol;
    for(int i=1;i<=n;i++){
      storer[i]=r[i-1]+1;
      storec[i]=c[i-1]+1;
      outc[i]=storec[i];
      outr[i]=storer[i];
      getmin[max(outc[i],outr[i])]=min(getmin[max(outc[i],outr[i])],min(outc[i],outr[i]));
      lol.push_back(max(outc[i],outr[i]));
    }
    outn=n,outm=m,outk=k;
  // solve the q find for all m points the minimum size of the square needed
  // 
  // need push backs id then occupy pt
  sort(lol.begin(),lol.end());
   need.push_back({lol[0],getmin[lol[0]]});
    for(int i=1;i<lol.size();i++){
      if(lol[i]==lol[i-1]){
        continue;
      }
        while(need.size()){
          if(need.back().second>=getmin[lol[i]]){
            need.pop_back();
          }
          else{
            break;
          }
        }
        if(getmin[lol[i]]!=1e18){
        need.push_back({lol[i],getmin[lol[i]]});
        }
    }
    outk=min(outk,(ll)need.size());
    // for(auto u: lol){
    //   cout<<u<<" ";
    // }
    // cout<<"\n";
    // for(auto u: need){
    //   cout<<u.first<<" "<<u.second<<"\n";
    // }
    ld ans=Aliens();
    //  cout<<ans<<"\n";
     return ans;

}

Compilation message (stderr)

aliens.cpp: In function 'std::pair<long double, long long int> qry(long double)':
aliens.cpp:35:11: error: no match for 'operator!=' (operand types are 'LINE' and 'LINE')
   35 |   if(store!=comp){
      |      ~~~~~^~~~~~
      |      |      |
      |      LINE   LINE
In file included from /usr/include/c++/10/regex:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110,
                 from aliens.cpp:1:
/usr/include/c++/10/bits/regex.h:1064:5: note: candidate: 'template<class _BiIter> bool std::__cxx11::operator!=(const std::__cxx11::sub_match<_BiIter>&, const std::__cxx11::sub_match<_BiIter>&)'
 1064 |     operator!=(const sub_match<_BiIter>& __lhs, const sub_match<_BiIter>& __rhs)
      |     ^~~~~~~~
/usr/include/c++/10/bits/regex.h:1064:5: note:   template argument deduction/substitution failed:
aliens.cpp:35:13: note:   'LINE' is not derived from 'const std::__cxx11::sub_match<_BiIter>'
   35 |   if(store!=comp){
      |             ^~~~
In file included from /usr/include/c++/10/regex:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110,
                 from aliens.cpp:1:
/usr/include/c++/10/bits/regex.h:1144:5: note: candidate: 'template<class _Bi_iter, class _Ch_traits, class _Ch_alloc> bool std::__cxx11::operator!=(std::__cxx11::__sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>&, const std::__cxx11::sub_match<_BiIter>&)'
 1144 |     operator!=(const __sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/10/bits/regex.h:1144:5: note:   template argument deduction/substitution failed:
aliens.cpp:35:13: note:   'LINE' is not derived from 'std::__cxx11::__sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>'
   35 |   if(store!=comp){
      |             ^~~~
In file included from /usr/include/c++/10/regex:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110,
                 from aliens.cpp:1:
/usr/include/c++/10/bits/regex.h:1237:5: note: candidate: 'template<class _Bi_iter, class _Ch_traits, class _Ch_alloc> bool std::__cxx11::operator!=(const std::__cxx11::sub_match<_BiIter>&, std::__cxx11::__sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>&)'
 1237 |     operator!=(const sub_match<_Bi_iter>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/10/bits/regex.h:1237:5: note:   template argument deduction/substitution failed:
aliens.cpp:35:13: note:   'LINE' is not derived from 'const std::__cxx11::sub_match<_BiIter>'
   35 |   if(store!=comp){
      |             ^~~~
In file included from /usr/include/c++/10/regex:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110,
                 from aliens.cpp:1:
/usr/include/c++/10/bits/regex.h:1311:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator!=(const typename std::iterator_traits<_Iter>::value_type*, const std::__cxx11::sub_match<_BiIter>&)'
 1311 |     operator!=(typename iterator_traits<_Bi_iter>::value_type const* __lhs,
      |     ^~~~~~~~
/usr/include/c++/10/bits/regex.h:1311:5: note:   template argument deduction/substitution failed:
aliens.cpp:35:13: note:   'LINE' is not derived from 'const std::__cxx11::sub_match<_BiIter>'
   35 |   if(store!=comp){
      |             ^~~~
In file included from /usr/include/c++/10/regex:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110,
                 from aliens.cpp:1:
/usr/include/c++/10/bits/regex.h:1405:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator!=(const std::__cxx11::sub_match<_BiIter>&, const typename std::iterator_traits<_Iter>::value_type*)'
 1405 |     operator!=(const sub_match<_Bi_iter>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/10/bits/regex.h:1405:5: note:   template argument deduction/substitution failed:
aliens.cpp:35:13: note:   'LINE' is not derived from 'const std::__cxx11::sub_match<_BiIter>'
   35 |   if(store!=comp){
      |             ^~~~
In file included from /usr/include/c++/10/regex:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110,
                 from aliens.cpp:1:
/usr/include/c++/10/bits/regex.h:1479:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator!=(const typename std::iterator_traits<_Iter>::value_type&, const std::__cxx11::sub_match<_BiIter>&)'
 1479 |     operator!=(typename iterator_traits<_Bi_iter>::value_type const& __lhs,
      |     ^~~~~~~~
/usr/include/c++/10/bits/regex.h:1479:5: note:   template argument deduction/substitution failed:
aliens.cpp:35:13: note:   'LINE' is not derived from 'const std::__cxx11::sub_match<_BiIter>'
   35 |   if(store!=comp){
      |             ^~~~
In file included from /usr/include/c++/10/regex:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110,
                 from aliens.cpp:1:
/usr/include/c++/10/bits/regex.h:1579:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator!=(const std::__cxx11::sub_match<_BiIter>&, const typename std::iterator_traits<_Iter>::value_type&)'
 1579 |     operator!=(const sub_match<_Bi_iter>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/10/bits/regex.h:1579:5: note:   template argument deduction/substitution failed:
aliens.cpp:35:13: note:   'LINE' is not derived from 'const std::__cxx11::sub_match<_BiIter>'
   35 |   if(store!=comp){
      |             ^~~~
In file included from /usr/include/c++/10/regex:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110,
                 from aliens.cpp:1:
/usr/include/c++/10/bits/regex.h:2126:5: note: candidate: 'template<class _Bi_iter, class _Alloc> bool std::__cxx11::operator!=(const std::__cxx11::match_results<_BiIter, _Alloc>&, const std::__cxx11::match_results<_BiIter, _Alloc>&)'
 2126 |     operator!=(const match_results<_Bi_iter, _Alloc>& __m1,
      |     ^~~~~~~~
/usr/include/c++/10/bits/regex.h:2126:5: note:   template argument deduction/substitution failed:
aliens.cpp:35:13: note:   'LINE' is not derived from 'const std::__cxx11::match_results<_BiIter, _Alloc>'
   35 |   if(store!=comp){
      |             ^~~~
In file included 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 aliens.cpp:1:
/usr/include/c++/10/bits/stl_pair.h:496:5: note: candidate: 'template<class _T1, class _T2> constexpr bool std::operator!=(const std::pair<_T1, _T2>&, const std::pair<_T1, _T2>&)'
  496 |     operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
      |     ^~~~~~~~
/usr/include/c++/10/bits/stl_pair.h:496:5: note:   template argument deduction/substitution failed:
aliens.cpp:35:13: note:   'LINE' is not derived from 'const std::pair<_T1, _T2>'
   35 |   if(store!=comp){
      |             ^~~~
In file included from /usr/include/c++/10/bits/stl_algobase.h:67,
                 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 aliens.cpp:1:
/usr/include/c++/10/bits/stl_iterator.h:372:5: note: candidate: 'template<class _Iterator> constexpr bool std::operator!=(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_Iterator>&)'
  372 |     operator!=(const reverse_iterator<_Iterator>& __x,
      |     ^~~~~~~~
/usr/include/c++/10/bits/stl_iterator.h:372:5: note:   template argument deduction/substitution failed:
aliens.cpp:35:13: note:   'LINE' is not derived from 'const std::reverse_iterator<_Iterator>'
   35 |   if(store!=comp){
      |             ^~~~
In file included from /usr/include/c++/10/bits/stl_algobase.h:67,
                 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 aliens.cpp:1:
/usr/include/c++/10/bits/stl_iterator.h:410:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator!=(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_IteratorR>&)'
  410 |     operator!=(const reverse_iterator<_IteratorL>& __x,
      |     ^~~~~~~~
/usr/include/c++/10/bits/stl_iterator.h:410:5: note:   template argument deduction/substitution failed:
aliens.cpp:35:13: note:   'LINE' is not derived from 'const std::reverse_iterator<_Iterator>'
   35 |   if(store!=comp){
      |             ^~~~
In file included from /usr/include/c++/10/bits/stl_algobase.h:67,
                 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 aliens.cpp:1:
/usr/include/c++/10/bits/stl_iterator.h:1444:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator!=(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorR>&)'
 1444 |     operator!=(const move_iterator<_IteratorL>& __x,
      |     ^~~~~~~~
/usr/include/c++/10/bits/stl_iterator.h:1444:5: note:   template argument deduction/substitution failed:
aliens.cpp:35:13: note:   'LINE' is not derived from 'const std::move_iterator<_IteratorL>'
   35 |   if(store!=comp){
      |             ^~~~
In file included from /usr/include/c++/10/bits/stl_algobase.h:67,
                 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 aliens.cpp:1:
/usr/include/c++/10/bits/stl_iterator.h:1501:5: note: candidate: 'template<class _Iterator> constexpr bool std::operator!=(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorL>&)'
 1501 |     operator!=(const move_iterator<_Iterator>& __x,
      |     ^~~~~~~~
/usr/include/c++/10/bits/stl_iterator.h:1501:5: note:   template argument deduction/substitution failed:
aliens.cpp:35:13: note:   'LINE' is not derived from 'const std::move_iterator<_IteratorL>'
   35 |   if(store!=comp){
      |             ^~~~
In file included from /usr/include/c++/10/iosfwd:40,
                 from /usr/include/c++/10/ios:38,
                 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 aliens.cpp:1:
/usr/include/c++/10/bits/postypes.h:227:5: note: candidate: 'template<class _StateT> bool std::operator!=(const std::fpos<_StateT>&, const std::fpos<_StateT>&)'
  227 |     operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs)
      |     ^~~~~~~~
/usr/include/c++/10/bits/postypes.h:227:5: note:   template argument deduction/substitution failed:
aliens.cpp:35:13: note:   'LINE' is not derived from 'const std::fpos<_StateT>'
   35 |   if(store!=comp){
      |             ^~~~
In file included from /usr/include/c++/10/string:41,
                 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 aliens.cpp:1:
/usr/include/c++/10/bits/allocator.h:213:5: note: candidate: 'template<class _T1, class _T2> bool std::operator!=(const std::allocator<_CharT>&, const std::allocator<_T2>&)'
  213 |     operator!=(const allocator<_T1>&, const allocator<_T2>&)
      |     ^~~~~~~~
/usr/include/c++/10/bits/allocator.h:213:5: note:   template argument deduction/substitution failed:
aliens.cpp:35:13: note:   'LINE' is not derived from 'const std::allocator<_CharT>'
   35 |   if(store!=comp){
      |             ^~~~
In file included from /usr/include/c++/10/bits/basic_string.h:48,
                 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 aliens.cpp:1:
/usr/include/c++/10/string_view:525:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator!=(std::basic_string_view<_CharT, _Traits>, std::basic_string_view<_CharT, _Traits>)'
  525 |     operator!=(basic_string_view<_CharT, _Traits> __x,
      |     ^~~~~~~~
/usr/include/c++/10/string_view:525:5: note:   template argument deduction/substitution failed:
aliens.cpp:35:13: note:   'LINE' is not derived from 'std::basic_string_view<_CharT, _Traits>'
   35 |   if(store!=comp){
      |             ^~~~
In file included from /usr/include/c++/10/bits/basic_string.h:48,
                 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 aliens.cpp:1:
/usr/include/c++/10/string_view:531:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator!=(std::basic_string_view<_CharT, _Traits>, std::__type_identity_t<std::basic_string_view<_CharT, _Traits> >)'
  531 |     operator!=(basic_string_view<_CharT, _Traits> __x,
      |     ^~~~~~~~
/usr/include/c++/10/string_view:531:5: note:   template argument deduction/substitution failed:
aliens.cpp:35:13: note:   'LINE' is not derived from 'std::basic_string_view<_CharT, _Traits>'
   35 |   if(store!=comp){
      |             ^~~~
In file included from /usr/include/c++/10/bits/basic_string.h:48,
                 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 aliens.cpp:1:
/usr/include/c++/10/string_view:538:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator!=(std::__type_identity_t<std::basic_string_view<_CharT, _Traits> >, std::basic_string_view<_CharT, _Traits>)'
  538 |     operator!=(__type_identity_t<basic_string_view<_CharT, _Traits>> __x,
      |     ^~~~~~~~
/usr/include/c++/10/string_view:538:5: note:   template argument deduction/substitution failed:
aliens.cpp:35:13: note:   'LINE' is not derived from 'std::basic_string_view<_CharT, _Traits>'
   35 |   if(store!=comp){
      |             ^~~~
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 aliens.cpp:1:
/usr/include/c++/10/bits/basic_string.h:6229:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> bool std::operator!=(const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&, const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
 6229 |     operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/10/bits/basic_string.h:6229:5: note:   template argument deduction/substitution failed:
aliens.cpp:35:13: note:   'LINE' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>'
   35 |   if(store!=comp){
      |             ^~~~
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 aliens.cpp:1:
/usr/include/c++/10/bits/basic_string.h:6242:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> bool std::operator!=(const _CharT*, const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
 6242 |     operator!=(const _CharT* __lhs,
      |     ^~~~~~~~
/usr/include/c++/10/bits/basic_string.h:6242:5: note:   template argument deduction/substitution failed:
aliens.cpp:35:13: note:   mismatched types 'const _CharT*' and 'LINE'
   35 |   if(store!=comp){
      |             ^~~~
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 aliens.cpp:1:
/usr/includ