Submission #54039

#TimeUsernameProblemLanguageResultExecution timeMemory
54039Mahmoud_AdelBali Sculptures (APIO15_sculpture)C++14
9 / 100
1096 ms1488 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/detail/standard_policies.hpp> #include <ext/pb_ds/assoc_container.hpp> // Common file #include <ext/pb_ds/tree_policy.hpp> // Including tree_order_statistics_node_update #define f first #define s second #define pb push_back #define mp make_pair #define clr(dp,i) memset(dp,i,sizeof(dp)) #define opt ios_base::sync_with_stdio(NULL);cin.tie(NULL);cout.tie(NULL); using namespace std; using namespace __gnu_pbds; typedef tree<int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update> oset; typedef long long ll; typedef long double ld; typedef unsigned long long ull; typedef pair<int, int> pii; const long long mod = 1e9+7; const ld pi = 3.14159265358979323846264338327950288; //======================================== ll n, l, r, mx, a[2001], dp[101][101], ans; ll h = (1LL << 50) - 1; bool sol(int i, int j, ll T) { if(i == n && j != mx) return 0; else if(i != n && j == mx) return 0; else if(i == n && j == mx) return 1; ll &ret = dp[i][j]; if(ret != -1) return ret; ll sum = 0; for(; i<n; i++) { sum += a[i]; ll enc = (sum^h); bitset<50> b(enc); bitset<50> c(T); if((enc & T) == T && sol(i+1, j+1, T)) return dp[i][j] = 1; } return dp[i][j] = 0; } int main() { cin >> n >> l >> r; for(int i=0; i<n; i++) cin >> a[i]; for(int i=60; i>=0; i--) { for(int j=l; j<=r; j++) { clr(dp, -1); mx = j; if(sol(0, 0, (ans | (1LL << i)))) ans |= (1LL << i); } } cout << (ans^h) << endl; }

Compilation message (stderr)

sculpture.cpp: In function 'bool sol(int, int, ll)':
sculpture.cpp:46:19: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
   return dp[i][j] = 1;
          ~~~~~~~~~^~~
sculpture.cpp:48:18: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
  return dp[i][j] = 0;
         ~~~~~~~~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...