제출 #1126340

#제출 시각아이디문제언어결과실행 시간메모리
1126340I_love_BanuMaxcomp (info1cup18_maxcomp)C++20
컴파일 에러
0 ms0 KiB
#include"bits/stdc++.h" using namespace std; using ll=long long; using ld=long double; using str=string; template<class T,class U>using P=pair<T,U>; using pi=P<int,int>; template<class T>using V=vector<T>; using vi=V<int>; using vl=V<ll>; using vvi=V<vi>; using vpi=V<pair<int,int>>; template<class T>int lwb(V<T>&a,T b){return int(lb(all(a),b)-begin(a));} template<class T>int lwb(T a[],int n,T b){return int(lb(a,a+n,b)-a);} template<class T>int upb(V<T>&a,T b){return int(ub(all(a),b)-begin(a));} template<class T>int upb(T a[],int n,T b){return int(ub(a,a+n,b)-a);} template<class T>ll sum(V<T>&a){return accumulate(all(a),0ll);} template<class T>ll sum(T a[],int n){return accumulate(a,a+n,0ll);} template<class T>T MAX(V<T>&a){return *max_element(all(a));} template<class T>T MAX(T a[],int n){return *max_element(a,a+n);} template<class T>T MIN(V<T>&a){return *min_element(all(a));} template<class T>T MIN(T a[],int n){return *min_element(a,a+n);} template<class T,class U>ifstream&operator>>(istream&in,P<T,U>a){return in>>a.first>>a.second;} #define sz(x)int(size(x)) #define all(x)begin(x),end(x) #define lla(x)rbegin(x),rend(x) #define lb lower_bound #define ub upper_bound #define FOR(i,a,b)for(int i=(a);i<(b);i++) #define F0R(i,a)FOR(i,0,a) #define ROF(i,a,b)for(int i=(b)-1;(a)<=i;i--) #define R0F(i,a)ROF(i,0,a) #define rep(a)F0R(_,a) #define each(a,x)for(auto&a:x) #define con const int con mxN = 1e3 + 3; ll A[mxN][mxN][2]; ll B[mxN][mxN][2]; ll a[mxN][mxN]; main(){ int N, M; cin >> N >> M; F0R(i, N){ F0R(j, M){ cin >> a[i][j]; } } fill(A, A + mxN * mxN * 2, LLONG_MAX); fill(A, A + mxN * mxN * 2, LLONG_MIN); ll ans = LLONG_MIN; F0R(i, N){ F0R(j, M){ A[i][j][0] = a[i][j] + 1; B[i][j][0] = a[i][j] - 1; if (0 < i){ A[i][j][0] = min(A[i][j][0], A[i - 1][j][0] + 1); B[i][j][0] = max(B[i][j][0], B[i - 1][j][0] - 1); } if (0 < j){ A[i][j][0] = min(A[i][j][0], A[i][j - 1][0] + 1); B[i][j][0] = max(B[i][j][0], B[i][j - 1][0] - 1); } } R0F(j, M){ A[i][j][1] = a[i][j] + 1; B[i][j][1] = a[i][j] - 1; if (0 < i){ A[i][j][1] = min(A[i][j][1], A[i - 1][j][0] + 1); B[i][j][1] = max(B[i][j][1], B[i - 1][j][0] - 1); } if (j < M - 1){ A[i][j][1] = min(A[i][j][1], A[i][j + 1][0] + 1); B[i][j][1] = max(B[i][j][1], B[i][j + 1][0] - 1); } } F0R(j, M){ ll mn = LLONG_MAX; if (0 < i){ mn = min({mn, A[i - 1][j][0], A[i - 1][j][1]}); } if (0 < j){ mn = min(mn, A[i][j - 1][0]); } if (j < M - 1){ mn = min(mn, A[i][j + 1][1]); } mn ++; ans = max(ans, a[i][j] - mn); ll mx = LLONG_MIN; if (0 < i){ mx = max({mx, B[i - 1][j][0], B[i - 1][j][1]}); } if (0 < j){ mx = max(mx, B[i][j - 1][0]); } if (j < M - 1){ mx = max(mx, B[i][j + 1][1]); } mx --; ans = max(ans, mx - a[i][j]); } } cout << ans << endl; }

컴파일 시 표준 에러 (stderr) 메시지

maxcomp.cpp:43:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   43 | main(){
      | ^~~~
In file included from /usr/include/c++/11/bits/specfun.h:45,
                 from /usr/include/c++/11/cmath:1935,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:41,
                 from maxcomp.cpp:1:
/usr/include/c++/11/bits/stl_algobase.h: In instantiation of 'constexpr typename __gnu_cxx::__enable_if<std::__is_scalar<_Tp>::__value, void>::__type std::__fill_a1(_ForwardIterator, _ForwardIterator, const _Tp&) [with _ForwardIterator = long long int (*)[1003][2]; _Tp = long long int; typename __gnu_cxx::__enable_if<std::__is_scalar<_Tp>::__value, void>::__type = void]':
/usr/include/c++/11/bits/stl_algobase.h:969:21:   required from 'constexpr void std::__fill_a(_FIte, _FIte, const _Tp&) [with _FIte = long long int (*)[1003][2]; _Tp = long long int]'
/usr/include/c++/11/bits/stl_algobase.h:999:20:   required from 'constexpr void std::fill(_ForwardIterator, _ForwardIterator, const _Tp&) [with _ForwardIterator = long long int (*)[1003][2]; _Tp = long long int]'
maxcomp.cpp:53:9:   required from here
/usr/include/c++/11/bits/stl_algobase.h:924:18: error: incompatible types in assignment of 'const long long int' to 'long long int [1003][2]'
  924 |         *__first = __tmp;
      |         ~~~~~~~~~^~~~~~~