답안 #54038

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
54038 2018-07-02T08:51:42 Z Mahmoud_Adel Bali Sculptures (APIO15_sculpture) C++14
0 / 100
4 ms 720 KB
#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=50; i>=0; i--)
	{
		for(int j=l+1; j<=r+1; j++)
		{
			clr(dp, -1);
			mx = j;
			if(sol(0, 0, (ans | (1LL << i))))
			ans |= (1LL << i);
		}
	}
	cout << (ans^h) << endl;
}

Compilation message

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;
         ~~~~~~~~~^~~
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 376 KB Output is correct
2 Correct 3 ms 376 KB Output is correct
3 Incorrect 2 ms 416 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 596 KB Output is correct
2 Correct 3 ms 596 KB Output is correct
3 Incorrect 2 ms 596 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 720 KB Output is correct
2 Correct 3 ms 720 KB Output is correct
3 Incorrect 2 ms 720 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 720 KB Output is correct
2 Correct 3 ms 720 KB Output is correct
3 Incorrect 2 ms 720 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 720 KB Output is correct
2 Correct 3 ms 720 KB Output is correct
3 Incorrect 2 ms 720 KB Output isn't correct
4 Halted 0 ms 0 KB -