Submission #1232642

#TimeUsernameProblemLanguageResultExecution timeMemory
1232642Muhammad_Aneeq모자이크 (IOI24_mosaic)C++20
Compilation error
0 ms0 KiB
#include "mosaic.h" #include <vector> #include <algorithm> #include <set> #include <iostream> using namespace std; set<int>st; void mk(vector<int>x,vector<int>y) { int n=x.size(); int m=min(6,n); vector<vector<int>>gr(n,vector<int>(m,0)); for (int i=0;i<n;i++) gr[i][0]=y[i]; for (int i=0;i<m;i++) gr[0][i]=x[i]; for (int i=1;i<n;i++) { for (int j=1;j<m;j++) { if (gr[i-1][j]==0&&gr[i][j-1]==0) { gr[i][j]=1; st.insert(j-i); } else gr[i][j]=0; } } gr=vector<vector<int>>(m,vector<int>(n,0)); for (int i=0;i<m;i++) gr[i][0]=y[i]; for (int i=0;i<n;i++) gr[0][i]=x[i]; for (int i=1;i<m;i++) { for (int j=1;j<n;j++) { if (gr[i-1][j]==0&&gr[i][j-1]==0) { gr[i][j]=1; st.insert(j-i); } else gr[i][j]=0; } } } vector<long long> mosaic(vector<int> X, vector<int> Y,vector<int> T, vector<int> B,vector<int> L, vector<int> R) { int q=T.size(); vector<long long>ans; int n=X.size(); int prex[n+1]={},prey[n+1]={}; for (int i=0;i<n;i++) { prex[i+1]=prex[i]+X[i]; prey[i+1]=prey[i]+Y[i]; } if (prex[n]==0&&prey[n]==0) { for (int i=0;i<q;i++) { long long sm=0; if (T[i]==0) T[i]++; if (L[i]==0) L[i]++; if (T[i]>B[i]||L[i]>R[i]) { ans.push_back(0); continue; } long long len=(R[i]-L[i]+1); long long len1=(B[i]-T[i]+1); sm=(len*(len1))/2; if (len1%2&&len%2) { if ((T[i]+L[i])%2==0) sm++; else sm--; } ans.push_back(sm); } return ans; } mk(X,Y); vector<int>segs; for (auto i:st) segs.push_back(i); for (int i=0;i<q;i++) { long long sm=0; if (T[i]==0&&L[i]==0) { sm=prex[R[i]+1]-prex[L[i]]+prey[B[i]+1]-prey[T[i]]-X[0]; T[i]++; L[i]++; } else if (T[i]==0) { sm=prex[R[i]+1]-prex[L[i]]; T[i]++; } else if (L[i]==0) { sm=prey[B[i]+1]-prey[T[i]]; L[i]++; } for (int j=T[i];j<=B[i];j++) { if (L[i]>R[i]) break; int z=lower_bound(begin(segs),end(segs),L[i]-j)-begin(segs); int y=upper_bound(begin(segs),end(segs),R[i]-j)-begin(segs); sm+=max(0ll,y-z); } ans.push_back(sm); } return ans; }

Compilation message (stderr)

mosaic.cpp: In function 'std::vector<long long int> mosaic(std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
mosaic.cpp:117:20: error: no matching function for call to 'max(long long int, int)'
  117 |             sm+=max(0ll,y-z);
      |                 ~~~^~~~~~~~~
In file included from /usr/include/c++/11/vector:60,
                 from mosaic.h:1,
                 from mosaic.cpp:1:
/usr/include/c++/11/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++/11/bits/stl_algobase.h:254:5: note:   template argument deduction/substitution failed:
mosaic.cpp:117:20: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
  117 |             sm+=max(0ll,y-z);
      |                 ~~~^~~~~~~~~
In file included from /usr/include/c++/11/vector:60,
                 from mosaic.h:1,
                 from mosaic.cpp:1:
/usr/include/c++/11/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++/11/bits/stl_algobase.h:300:5: note:   template argument deduction/substitution failed:
mosaic.cpp:117:20: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
  117 |             sm+=max(0ll,y-z);
      |                 ~~~^~~~~~~~~
In file included from /usr/include/c++/11/vector:62,
                 from mosaic.h:1,
                 from mosaic.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:3461:5: note: candidate: 'template<class _Tp> constexpr _Tp std::max(std::initializer_list<_Tp>)'
 3461 |     max(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3461:5: note:   template argument deduction/substitution failed:
mosaic.cpp:117:20: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
  117 |             sm+=max(0ll,y-z);
      |                 ~~~^~~~~~~~~
In file included from /usr/include/c++/11/vector:62,
                 from mosaic.h:1,
                 from mosaic.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:3467:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::max(std::initializer_list<_Tp>, _Compare)'
 3467 |     max(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3467:5: note:   template argument deduction/substitution failed:
mosaic.cpp:117:20: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
  117 |             sm+=max(0ll,y-z);
      |                 ~~~^~~~~~~~~