Submission #938907

#TimeUsernameProblemLanguageResultExecution timeMemory
938907amirhoseinfar1385Fire (JOI20_ho_t5)C++17
Compilation error
0 ms0 KiB
#include<bits/stdc++.h> using namespace std; const long long maxn=200000+10; long long n,q; long long all[maxn],res[maxn],par[maxn],val[maxn],sz[maxn]; vector<pair<long long,long long>>allq[maxn]; vector<long long>adj[maxn]; pair<long long,long long>tof[maxn]; void vorod(){ cin>>n>>q; for(long long i=1;i<=n;i++){ cin>>all[i]; } for(long long i=1;i<=q;i++){ long long t,l,r; cin>>t>>l>>r; tof[i]=make_pair(l,r); allq[l-1].push_back(make_pair(-i,t)); allq[r].push_back(make_pair(i,t)); } } void pre(){ vector<long long>v; for(long long i=1;i<=n;i++){ while((long long)v.size()>0&&all[v.back()]<all[i]){ v.pop_back(); } if((long long)v.size()>0){ par[i]=v.back(); val[i]=all[v.back()]-all[i]; adj[v.back()].push_back(i); sz[i]=i-par[i]-1; } v.push_back(i); } } void solve(){ for(long long i=1;i<=n;i++){ long long u=i; while(u!=0){ sz[u]++; u=par[u]; } for(auto x:allq[i]){ long long mainres=0; for(long long j=1;j<=n;j++){ mainres+=max(min(x.second,sz[j])-(j-par[j]-1),0)*val[j]; // if(x.first==2){ // cout<<"wtf: "<<j<<" "<<sz[j]<<" "<<x.second<<" "<<val[j]<<" "<<mainres<<endl; // } } // cout<<i<<" "<<mainres<<" "<<x.first<<" "<<x.second<<endl; if(x.first<0){ x.first*=-1; mainres*=-1; } res[x.first]+=mainres; } } } void khor(){ for(long long i=1;i<=q;i++){ for(long long j=tof[i].first;j<=tof[i].second;j++){ res[i]+=all[j]; } cout<<res[i]<<"\n"; } } int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); //freopen("inp.txt","r",stdin); vorod(); pre(); solve(); khor(); }

Compilation message (stderr)

ho_t5.cpp: In function 'void solve()':
ho_t5.cpp:50:52: error: no matching function for call to 'max(long long int, int)'
   50 |     mainres+=max(min(x.second,sz[j])-(j-par[j]-1),0)*val[j];
      |                                                    ^
In file included 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 ho_t5.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:254:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::max(const _Tp&, const _Tp&)'
  254 |     max(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:254:5: note:   template argument deduction/substitution failed:
ho_t5.cpp:50:52: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   50 |     mainres+=max(min(x.second,sz[j])-(j-par[j]-1),0)*val[j];
      |                                                    ^
In file included 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 ho_t5.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:300:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::max(const _Tp&, const _Tp&, _Compare)'
  300 |     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:300:5: note:   template argument deduction/substitution failed:
ho_t5.cpp:50:52: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   50 |     mainres+=max(min(x.second,sz[j])-(j-par[j]-1),0)*val[j];
      |                                                    ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from ho_t5.cpp:1:
/usr/include/c++/10/bits/stl_algo.h:3480:5: note: candidate: 'template<class _Tp> constexpr _Tp std::max(std::initializer_list<_Tp>)'
 3480 |     max(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3480:5: note:   template argument deduction/substitution failed:
ho_t5.cpp:50:52: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   50 |     mainres+=max(min(x.second,sz[j])-(j-par[j]-1),0)*val[j];
      |                                                    ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from ho_t5.cpp:1:
/usr/include/c++/10/bits/stl_algo.h:3486:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::max(std::initializer_list<_Tp>, _Compare)'
 3486 |     max(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3486:5: note:   template argument deduction/substitution failed:
ho_t5.cpp:50:52: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   50 |     mainres+=max(min(x.second,sz[j])-(j-par[j]-1),0)*val[j];
      |                                                    ^