Submission #1290925

#TimeUsernameProblemLanguageResultExecution timeMemory
1290925hashim_bas Martian DNA (BOI18_dna)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
using namespace std;
#include <ext/pb_ds/assoc_container.hpp> 
#include <ext/pb_ds/tree_policy.hpp> 
using namespace __gnu_pbds;
template<class T, class comp=less<T>>
using ordered_set = tree<T, null_type,comp, rb_tree_tag,tree_order_statistics_node_update>;
//#define int long long
#define ll long long
#define ld long double
#define fi first
#define se second
#define mo 1000000007
#define pb push_back
#define all(x) x.begin(),x.end()
#define iter(i,st) auto i=st.begin(); i!=st.end();i++



void solve(){
    int n,k,r ;
    cin>>n>>k>>r ;
    vector<int> a(n+1,0) ;
    vector<pair<int,int> > b(n+1,{0,0}) ; 
    unordered_map<int,bool> mp ;
    for(int i=1;i<=n;i++){
        int x ;
        cin>>x ;
        x++ ;
        a[i]=x ;
    }
    vector<int> rq(n+1,0) ;
    for(int i=1;i<=r;i++){
        int x,y ;
        cin>>x>>y ;
        x++ ;
        b[i].fi=x ;
        b[i].se=y ;
        rq[x]=y ;
        mp[x]=1 ;
    }
    vector<vector<pair<int,int> > > p(n+1,vector<pair<int,int> > (1,({3*n,3*n}))) ;
    vector<vector<int> > f(n+1) ;
    for(int i=n;i>=1;i--){
        if(rq[a[i]]){
            f[a[i]].pb(i) ;
            cout<<a[i]<<" "<<f[a[i]].size()-1<<" "<<rq[a[i]]<<" > " ;
            if(f[a[i]].size()-1>=rq[a[i]]){
                p[a[i]].pb({i,f[a[i]][f[a[i]].size()-rq[a[i]]]}) ;
                cout<<f[a[i]][f[a[i]].size()-rq[a[i]]]<<" >>" ;
            }
            cout<<"\n" ;
        }
    }
    int ans=0 ;
    for(int i=1;i<=r;i++){
        ans=max(ans,p[a[i]].back().se) ;
    }
    int mn=ans ;
    for(int i=1;i<=n;i++){
        if(mp[a[i]]){
            p[a[i]].pop_back() ;
            mn=max(mn,p[a[i]].back().se) ;
        }
        ans=min(ans,mn) ;
    }
    cout<<ans<<"\n" ;
    // for(int i=1;i<=k;i++){
    //     for(auto &i : p[k]){
    //         cout<<i.fi<<" "<<i.se<<"\n" ;
    //     }
    // }
}



signed main(){
// cin.tie(0) -> sync_with_stdio(0);
    int _=1 ;
    //cin>>_ ;
    while(_--){
        solve() ;
    }
    return 0 ;
}

Compilation message (stderr)

dna.cpp: In function 'void solve()':
dna.cpp:42:78: error: expected ';' before '}' token
   42 |     vector<vector<pair<int,int> > > p(n+1,vector<pair<int,int> > (1,({3*n,3*n}))) ;
      |                                                                              ^
      |                                                                              ;
dna.cpp:42:80: error: no matching function for call to 'std::vector<std::pair<int, int> >::vector(int, int)'
   42 |     vector<vector<pair<int,int> > > p(n+1,vector<pair<int,int> > (1,({3*n,3*n}))) ;
      |                                                                                ^
In file included from /usr/include/c++/13/vector:66,
                 from /usr/include/c++/13/functional:64,
                 from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:53,
                 from dna.cpp:1:
/usr/include/c++/13/bits/stl_vector.h:707:9: note: candidate: 'template<class _InputIterator, class> constexpr std::vector<_Tp, _Alloc>::vector(_InputIterator, _InputIterator, const allocator_type&) [with <template-parameter-2-2> = _InputIterator; _Tp = std::pair<int, int>; _Alloc = std::allocator<std::pair<int, int> >]'
  707 |         vector(_InputIterator __first, _InputIterator __last,
      |         ^~~~~~
/usr/include/c++/13/bits/stl_vector.h:707:9: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/13/bits/stl_algobase.h:65,
                 from /usr/include/c++/13/algorithm:60,
                 from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:51:
/usr/include/c++/13/bits/stl_iterator_base_types.h: In substitution of 'template<class _InIter> using std::_RequireInputIter = std::__enable_if_t<std::is_convertible<typename std::iterator_traits< <template-parameter-1-1> >::iterator_category, std::input_iterator_tag>::value> [with _InIter = int]':
/usr/include/c++/13/bits/stl_vector.h:705:9:   required from here
/usr/include/c++/13/bits/stl_iterator_base_types.h:250:11: error: no type named 'iterator_category' in 'struct std::iterator_traits<int>'
  250 |     using _RequireInputIter =
      |           ^~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/stl_vector.h:678:7: note: candidate: 'constexpr std::vector<_Tp, _Alloc>::vector(std::initializer_list<_Tp>, const allocator_type&) [with _Tp = std::pair<int, int>; _Alloc = std::allocator<std::pair<int, int> >; allocator_type = std::allocator<std::pair<int, int> >]'
  678 |       vector(initializer_list<value_type> __l,
      |       ^~~~~~
/usr/include/c++/13/bits/stl_vector.h:678:43: note:   no known conversion for argument 1 from 'int' to 'std::initializer_list<std::pair<int, int> >'
  678 |       vector(initializer_list<value_type> __l,
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/stl_vector.h:659:7: note: candidate: 'constexpr std::vector<_Tp, _Alloc>::vector(std::vector<_Tp, _Alloc>&&, std::__type_identity_t<_Alloc>&) [with _Tp = std::pair<int, int>; _Alloc = std::allocator<std::pair<int, int> >; std::__type_identity_t<_Alloc> = std::allocator<std::pair<int, int> >]'
  659 |       vector(vector&& __rv, const __type_identity_t<allocator_type>& __m)
      |       ^~~~~~
/usr/include/c++/13/bits/stl_vector.h:659:23: note:   no known conversion for argument 1 from 'int' to 'std::vector<std::pair<int, int> >&&'
  659 |       vector(vector&& __rv, const __type_identity_t<allocator_type>& __m)
      |              ~~~~~~~~~^~~~
/usr/include/c++/13/bits/stl_vector.h:640:7: note: candidate: 'constexpr std::vector<_Tp, _Alloc>::vector(std::vector<_Tp, _Alloc>&&, const allocator_type&, std::false_type) [with _Tp = std::pair<int, int>; _Alloc = std::allocator<std::pair<int, int> >; allocator_type = std::allocator<std::pair<int, int> >; std::false_type = std::integral_constant<bool, false>]'
  640 |       vector(vector&& __rv, const allocator_type& __m, false_type)
      |       ^~~~~~
/usr/include/c++/13/bits/stl_vector.h:640:7: note:   candidate expects 3 arguments, 2 provided
/usr/include/c++/13/bits/stl_vector.h:635:7: note: candidate: 'constexpr std::vector<_Tp, _Alloc>::vector(std::vector<_Tp, _Alloc>&&, const allocator_type&, std::true_type) [with _Tp = std::pair<int, int>; _Alloc = std::allocator<std::pair<int, int> >; allocator_type = std::allocator<std::pair<int, int> >; std::true_type = std::integral_constant<bool, true>]'
  635 |       vector(vector&& __rv, const allocator_type& __m, true_type) noexcept
      |       ^~~~~~
/usr/include/c++/13/bits/stl_vector.h:635:7: note:   candidate expects 3 arguments, 2 provided
/usr/include/c++/13/bits/stl_vector.h:624:7: note: candidate: 'constexpr std::vector<_Tp, _Alloc>::vector(const std::vector<_Tp, _Alloc>&, std::__type_identity_t<_Alloc>&) [with _Tp = std::pair<int, int>; _Alloc = std::allocator<std::pair<int, int> >; std::__type_identity_t<_Alloc> = std::allocator<std::pair<int, int> >]'
  624 |       vector(const vector& __x, const __type_identity_t<allocator_type>& __a)
      |       ^~~~~~
/usr/include/c++/13/bits/stl_vector.h:624:28: note:   no known conversion for argument 1 from 'int' to 'const std::vector<std::pair<int, int> >&'
  624 |       vector(const vector& __x, const __type_identity_t<allocator_type>& __a)
      |              ~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/stl_vector.h:620:7: note: candidate: 'constexpr std::vector<_Tp, _Alloc>::vector(std::vector<_Tp, _Alloc>&&) [with _Tp = std::pair<int, int>; _Alloc = std::allocator<std::pair<int, int> >]'
  620 |       vector(vector&&) noexcept = default;
      |       ^~~~~~
/usr/include/c++/13/bits/stl_vector.h:620:7: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/13/bits/stl_vector.h:601:7: note: candidate: 'constexpr std::vector<_Tp, _Alloc>::vector(const std::vector<_Tp, _Alloc>&) [with _Tp = std::pair<int, int>; _Alloc = std::allocator<std::pair<int, int> >]'
  601 |       vector(const vector& __x)
      |       ^~~~~~
/usr/include/c++/13/bits/stl_vector.h:601:7: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/13/bits/stl_vector.h:569:7: note: candidate: 'constexpr std::vector<_Tp, _Alloc>::vector(size_type, const value_type&, const allocator_type&) [with _Tp = std::pair<int, int>; _Alloc = std::allocator<std::pair<int, int> >; size_type = long unsigned int; value_type = std::pair<int, int>; allocator_type = std::allocator<std::pair<int, int> >]'
  569 |       vector(size_type __n, const value_type& __value,
      |       ^~~~~~
/usr/include/c++/13/bits/stl_vector.h:569:47: note:   no known conversion for argument 2 from 'int' to 'const std::vector<std::pair<int, int> >::value_type&' {aka 'const std::pair<int, int>&'}
  569 |       vector(size_type __n, const value_type& __value,
      |                             ~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/c++/13/bits/stl_vector.h:556:7: note: candidate: 'constexpr std::vector<_Tp, _Alloc>::vector(size_type, const allocator_type&) [with _Tp = std::pair<int, int>; _Alloc = std::allocator<std::pair<int, int> >; size_type = long unsigned int; allocator_type = std::allocator<std::pair<int, int> >]'
  556 |       vector(size_type __n, const allocator_type& __a = allocator_type())
      |       ^~~~~~
/usr/include/c++/13/bits/stl_vector.h:556:51: note:   no known conversion for argument 2 from 'int' to 'const std::vector<std::pair<int, int> >::allocator_type&' {aka 'const std::allocator<std::pair<int, int> >&'}
  556 |       vector(size_type __n, const allocator_type& __a = allocator_type())
      |                             ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/stl_vector.h:542:7: note: candidate: 'constexpr std::vector<_Tp, _Alloc>::vector(const allocator_type&) [with _Tp = std::pair<int, int>; _Alloc = std::allocator<std::pair<int, int> >; allocator_type = std::allocator<std::pair<int, int> >]'
  542 |       vector(const allocator_type& __a) _GLIBCXX_NOEXCEPT
      |       ^~~~~~
/usr/include/c++/13/bits/stl_vector.h:542:7: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/13/bits/stl_vector.h:531:7: note: candidate: 'constexpr std::vector<_Tp, _Alloc>::vector() [with _Tp = std::pair<int, int>; _Alloc = std::allocator<std::pair<int, int> >]'
  531 |       vector() = default;
      |       ^~~~~~
/usr/include/c++/13/bits/stl_vector.h:531:7: note:   candidate expects 0 arguments, 2 provided