Submission #160088

#TimeUsernameProblemLanguageResultExecution timeMemory
160088NordwayDetecting Molecules (IOI16_molecules)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #define x first #define y second #define pb push_back #define mp make_pair #define up_b upper_bound #define low_b lower_bound #define sz(x) (int)x.size() #define all(v) v.begin(),v.end() #define nl '\n' #define boost ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0) using namespace std; typedef long long ll; typedef long double ld; typedef pair<int,int> pii; typedef pair<int,ll> pil; typedef pair<ll,int> pli; typedef pair<ll,ll> pll; const ll INF=1e18; const int inf=1e9; const ld eps=1e-7; const ld pi=acos(-1); const int dx[8]={0,0 ,1,-1,1,1,-1,-1}; const int dy[8]={1,-1,0,0,1,-1,1,-1}; const int mod1=998244353; const int mod2=1e9+7; const int N=1e4+1; int a[N]; vector<int> find_subset(int l,int u,vector<int>w){ sort(all(w)); int n=0; for(int i=0;i<sz(w);i++){ if(w[i]>u)break; a[i+1]=w[i]; n++; } vector<vector<bool>> dp(n+1,vector<bool>(u+1,0)); dp[0][0]=1; for(int i=1;i<=n;i++){ for(int j=0;j<=u;j++){ if(j>=a[i])dp[i][j]|=dp[i-1][j-a[i]]; dp[i][j]|=dp[i-1][j]; } } int val=-1; for(int i=l;i<=u;i++){ if(dp[n][i]){ val=i; break; } } vector<int>ans; if(val){ while(val>0){ if(dp[n-1][val-a[n]]){ ans.pb(n-1); val-=a[n]; n--; } else if(dp[n-1][val]){ n--; } } } return ans; }

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:47:26: error: no match for 'operator|=' (operand types are 'std::vector<bool>::reference {aka std::_Bit_reference}' and 'std::vector<bool>::reference {aka std::_Bit_reference}')
       if(j>=a[i])dp[i][j]|=dp[i-1][j-a[i]];
                  ~~~~~~~~^~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/7/ios:42:0,
                 from /usr/include/c++/7/istream:38,
                 from /usr/include/c++/7/sstream:38,
                 from /usr/include/c++/7/complex:45,
                 from /usr/include/c++/7/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:52,
                 from molecules.cpp:1:
/usr/include/c++/7/bits/ios_base.h:99:3: note: candidate: const std::_Ios_Fmtflags& std::operator|=(std::_Ios_Fmtflags&, std::_Ios_Fmtflags)
   operator|=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b)
   ^~~~~~~~
/usr/include/c++/7/bits/ios_base.h:99:3: note:   no known conversion for argument 1 from 'std::vector<bool>::reference {aka std::_Bit_reference}' to 'std::_Ios_Fmtflags&'
/usr/include/c++/7/bits/ios_base.h:141:3: note: candidate: const std::_Ios_Openmode& std::operator|=(std::_Ios_Openmode&, std::_Ios_Openmode)
   operator|=(_Ios_Openmode& __a, _Ios_Openmode __b)
   ^~~~~~~~
/usr/include/c++/7/bits/ios_base.h:141:3: note:   no known conversion for argument 1 from 'std::vector<bool>::reference {aka std::_Bit_reference}' to 'std::_Ios_Openmode&'
/usr/include/c++/7/bits/ios_base.h:181:3: note: candidate: const std::_Ios_Iostate& std::operator|=(std::_Ios_Iostate&, std::_Ios_Iostate)
   operator|=(_Ios_Iostate& __a, _Ios_Iostate __b)
   ^~~~~~~~
/usr/include/c++/7/bits/ios_base.h:181:3: note:   no known conversion for argument 1 from 'std::vector<bool>::reference {aka std::_Bit_reference}' to 'std::_Ios_Iostate&'
In file included from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:105:0,
                 from molecules.cpp:1:
/usr/include/c++/7/future:167:18: note: candidate: std::launch& std::operator|=(std::launch&, std::launch)
   inline launch& operator|=(launch& __x, launch __y)
                  ^~~~~~~~
/usr/include/c++/7/future:167:18: note:   no known conversion for argument 1 from 'std::vector<bool>::reference {aka std::_Bit_reference}' to 'std::launch&'
molecules.cpp:48:15: error: no match for 'operator|=' (operand types are 'std::vector<bool>::reference {aka std::_Bit_reference}' and 'std::vector<bool>::reference {aka std::_Bit_reference}')
       dp[i][j]|=dp[i-1][j];
       ~~~~~~~~^~~~~~~~~~~~
In file included from /usr/include/c++/7/ios:42:0,
                 from /usr/include/c++/7/istream:38,
                 from /usr/include/c++/7/sstream:38,
                 from /usr/include/c++/7/complex:45,
                 from /usr/include/c++/7/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:52,
                 from molecules.cpp:1:
/usr/include/c++/7/bits/ios_base.h:99:3: note: candidate: const std::_Ios_Fmtflags& std::operator|=(std::_Ios_Fmtflags&, std::_Ios_Fmtflags)
   operator|=(_Ios_Fmtflags& __a, _Ios_Fmtflags __b)
   ^~~~~~~~
/usr/include/c++/7/bits/ios_base.h:99:3: note:   no known conversion for argument 1 from 'std::vector<bool>::reference {aka std::_Bit_reference}' to 'std::_Ios_Fmtflags&'
/usr/include/c++/7/bits/ios_base.h:141:3: note: candidate: const std::_Ios_Openmode& std::operator|=(std::_Ios_Openmode&, std::_Ios_Openmode)
   operator|=(_Ios_Openmode& __a, _Ios_Openmode __b)
   ^~~~~~~~
/usr/include/c++/7/bits/ios_base.h:141:3: note:   no known conversion for argument 1 from 'std::vector<bool>::reference {aka std::_Bit_reference}' to 'std::_Ios_Openmode&'
/usr/include/c++/7/bits/ios_base.h:181:3: note: candidate: const std::_Ios_Iostate& std::operator|=(std::_Ios_Iostate&, std::_Ios_Iostate)
   operator|=(_Ios_Iostate& __a, _Ios_Iostate __b)
   ^~~~~~~~
/usr/include/c++/7/bits/ios_base.h:181:3: note:   no known conversion for argument 1 from 'std::vector<bool>::reference {aka std::_Bit_reference}' to 'std::_Ios_Iostate&'
In file included from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:105:0,
                 from molecules.cpp:1:
/usr/include/c++/7/future:167:18: note: candidate: std::launch& std::operator|=(std::launch&, std::launch)
   inline launch& operator|=(launch& __x, launch __y)
                  ^~~~~~~~
/usr/include/c++/7/future:167:18: note:   no known conversion for argument 1 from 'std::vector<bool>::reference {aka std::_Bit_reference}' to 'std::launch&'