제출 #915540

#제출 시각아이디문제언어결과실행 시간메모리
915540vjudge1Bomb (IZhO17_bomb)C++17
컴파일 에러
0 ms0 KiB
/*#pragma GCC optimize("Ofast") #pragma GCC target("avx,avx2,fma") #pragma GCC optimization("unroll-loops") #pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx2,bmi,bmi2,popcnt,lzcnt")*/ #include <bits/stdc++.h> #include <iomanip> #define ll long long #define int short #define pb push_back #define mp make_pair #define ff first #define ss second #define str string #define pii pair<int,int> #define sz(x) x.size() #define all(x) x.begin(), x.end() #define vi vector<int> #define mii map<int,int> #define mll map<ll,ll> #define yes cout<<"YES\n"; #define no cout<<"NO\n"; #define yess cout<<"Yes\n"; #define noo cout<<"No\n"; using namespace std; int pp[501][501]; int u[501][501]; void solve(){ int n,m; cin>>n>>m; if(n==1){ str s; cin>>s; vector<int >v; int k=0; for(int i=0;i<m;i++){ if(s[i]=='1')k++; else{ if(k>0){ v.pb(k); k=0; } } } if(k>0){ v.pb(k); } int ans=1; if(v.size()==0){ cout<<0; return; } for(int i=2;i<=m;i++){ k=1; for(int j=0;j<(int)v.size();j++){ if(v[j]<i){ k=0; break; } } if(k==1){ ans=i; } } cout<<ans; } else if(m==1){ char s; vector<int >v; int k=0; for(int i=0;i<n;i++){ cin>>s; if(s=='1')k++; else{ if(k>0){ v.pb(k); k=0; } } } if(k>0){ v.pb(k); } int ans=1; if(v.size()==0){ cout<<0; return; } for(int i=2;i<=n;i++){ k=1; for(int j=0;j<(int)v.size();j++){ if(v[j]<i){ k=0; break; } } if(k==1){ ans=i; } } cout<<ans; } else{ str s[n+3]; int a[n+3][m+3]; int o=0; for(int i=1;i<=n;i++){ cin>>s[i]; for(int j=0;j<m;j++){ a[i][j+1]=s[i][j]-'0'; o+=(a[i][j]==1); pp[i][j+1]=a[i][j+1]+pp[i][j]+pp[i-1][j+1]-pp[i-1][j]; } } if(o==0){ cout<<0; return; } int ans=0; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(i*j<=ans){ continue; } for(int i1=1;i1<=n;i1++){ for(int j1=1;j1<=m;j1++){ u[i1][j1]=0; } } for(int i1=1;i1<=n;i1++){ for(int j1=1;j1<=m;j1++){ if(i1+i-1>n || j1+j-1>m)continue; if(pp[i1+i-1][j1+j-1]+pp[i1-1][j1-1]-pp[i1+i-1][j1-1]-pp[i1-1][j1+j-1]==i*j){ for(int i2=i1;i2<=i1+i-1;i2++){ for(int j2=j1;j2<=j1+j-1;j2++){ u[i2][j2]=1; } } } } } int k=1; for(int i1=1;i1<=n;i1++){ for(int j1=1;j1<=m;j1++){ if(u[i1][j1]!=a[i1][j1]){ k=0; break; } } } if(k==1){ /*cout<<i<<" "<<j<<"\n"; for(int i1=1;i1<=n;i1++){ for(int j1=1;j1<=m;j1++){ cout<<u[i1][j1]; } cout<<"\n"; }//*/ ans=max(ans,i*j); } } } cout<<ans; } } signed main(){ ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0); //srand( time(0)); //rand() //freopen("sum.in", "r", stdin); //freopen("sum.out", "w", stdout); int tests=1; //cin>>tests; for(int i=1;i<=tests;i++){ //cout<<"TEST CASE : "<<i<<"\n"; solve(); } }

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

bomb.cpp: In function 'void solve()':
bomb.cpp:161:36: error: no matching function for call to 'max(short int&, int)'
  161 |                     ans=max(ans,i*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 bomb.cpp:6:
/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:
bomb.cpp:161:36: note:   deduced conflicting types for parameter 'const _Tp' ('short int' and 'int')
  161 |                     ans=max(ans,i*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 bomb.cpp:6:
/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:
bomb.cpp:161:36: note:   deduced conflicting types for parameter 'const _Tp' ('short int' and 'int')
  161 |                     ans=max(ans,i*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 bomb.cpp:6:
/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:
bomb.cpp:161:36: note:   mismatched types 'std::initializer_list<_Tp>' and 'short int'
  161 |                     ans=max(ans,i*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 bomb.cpp:6:
/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:
bomb.cpp:161:36: note:   mismatched types 'std::initializer_list<_Tp>' and 'short int'
  161 |                     ans=max(ans,i*j);
      |                                    ^