Submission #54043

# Submission time Handle Problem Language Result Execution time Memory
54043 2018-07-02T08:57:20 Z Mahmoud_Adel Bali Sculptures (APIO15_sculpture) C++14
9 / 100
1000 ms 812 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()
{
	opt;
	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

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 time Memory Grader output
1 Correct 3 ms 376 KB Output is correct
2 Correct 3 ms 488 KB Output is correct
3 Correct 3 ms 556 KB Output is correct
4 Correct 3 ms 556 KB Output is correct
5 Correct 3 ms 556 KB Output is correct
6 Correct 6 ms 556 KB Output is correct
7 Correct 3 ms 556 KB Output is correct
8 Correct 3 ms 556 KB Output is correct
9 Correct 4 ms 608 KB Output is correct
10 Correct 3 ms 608 KB Output is correct
11 Correct 3 ms 608 KB Output is correct
12 Correct 3 ms 608 KB Output is correct
13 Correct 6 ms 608 KB Output is correct
14 Correct 2 ms 608 KB Output is correct
15 Correct 2 ms 608 KB Output is correct
16 Correct 4 ms 716 KB Output is correct
17 Correct 3 ms 716 KB Output is correct
18 Correct 3 ms 716 KB Output is correct
19 Correct 3 ms 716 KB Output is correct
20 Correct 3 ms 716 KB Output is correct
21 Correct 3 ms 716 KB Output is correct
22 Correct 3 ms 716 KB Output is correct
23 Correct 4 ms 716 KB Output is correct
24 Correct 2 ms 716 KB Output is correct
25 Correct 4 ms 716 KB Output is correct
26 Correct 5 ms 716 KB Output is correct
27 Correct 3 ms 716 KB Output is correct
28 Correct 3 ms 716 KB Output is correct
29 Correct 6 ms 716 KB Output is correct
30 Correct 3 ms 716 KB Output is correct
31 Correct 4 ms 716 KB Output is correct
32 Correct 2 ms 716 KB Output is correct
33 Correct 10 ms 716 KB Output is correct
34 Correct 49 ms 716 KB Output is correct
35 Correct 3 ms 716 KB Output is correct
36 Correct 150 ms 716 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 716 KB Output is correct
2 Correct 3 ms 716 KB Output is correct
3 Correct 2 ms 716 KB Output is correct
4 Correct 3 ms 716 KB Output is correct
5 Correct 2 ms 716 KB Output is correct
6 Correct 6 ms 716 KB Output is correct
7 Correct 3 ms 716 KB Output is correct
8 Correct 3 ms 716 KB Output is correct
9 Correct 2 ms 716 KB Output is correct
10 Correct 3 ms 716 KB Output is correct
11 Correct 2 ms 716 KB Output is correct
12 Correct 3 ms 716 KB Output is correct
13 Correct 6 ms 716 KB Output is correct
14 Correct 2 ms 716 KB Output is correct
15 Correct 3 ms 716 KB Output is correct
16 Correct 4 ms 716 KB Output is correct
17 Correct 4 ms 716 KB Output is correct
18 Correct 3 ms 716 KB Output is correct
19 Correct 2 ms 716 KB Output is correct
20 Correct 2 ms 716 KB Output is correct
21 Correct 3 ms 716 KB Output is correct
22 Correct 3 ms 716 KB Output is correct
23 Correct 4 ms 716 KB Output is correct
24 Correct 2 ms 716 KB Output is correct
25 Correct 4 ms 716 KB Output is correct
26 Correct 4 ms 716 KB Output is correct
27 Correct 7 ms 716 KB Output is correct
28 Correct 4 ms 716 KB Output is correct
29 Correct 4 ms 716 KB Output is correct
30 Correct 211 ms 716 KB Output is correct
31 Execution timed out 1070 ms 716 KB Time limit exceeded
32 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 3 ms 716 KB Output is correct
2 Correct 3 ms 716 KB Output is correct
3 Correct 3 ms 716 KB Output is correct
4 Correct 3 ms 716 KB Output is correct
5 Correct 2 ms 716 KB Output is correct
6 Correct 7 ms 716 KB Output is correct
7 Correct 4 ms 716 KB Output is correct
8 Correct 3 ms 716 KB Output is correct
9 Correct 3 ms 716 KB Output is correct
10 Correct 3 ms 716 KB Output is correct
11 Correct 2 ms 716 KB Output is correct
12 Correct 3 ms 716 KB Output is correct
13 Correct 6 ms 720 KB Output is correct
14 Correct 7 ms 720 KB Output is correct
15 Correct 5 ms 720 KB Output is correct
16 Correct 4 ms 720 KB Output is correct
17 Correct 219 ms 720 KB Output is correct
18 Execution timed out 1063 ms 720 KB Time limit exceeded
19 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 3 ms 720 KB Output is correct
2 Correct 3 ms 720 KB Output is correct
3 Correct 3 ms 720 KB Output is correct
4 Correct 4 ms 720 KB Output is correct
5 Correct 3 ms 720 KB Output is correct
6 Correct 6 ms 720 KB Output is correct
7 Correct 3 ms 720 KB Output is correct
8 Correct 3 ms 720 KB Output is correct
9 Correct 2 ms 720 KB Output is correct
10 Correct 3 ms 720 KB Output is correct
11 Correct 2 ms 720 KB Output is correct
12 Correct 3 ms 720 KB Output is correct
13 Correct 6 ms 720 KB Output is correct
14 Correct 2 ms 720 KB Output is correct
15 Correct 2 ms 720 KB Output is correct
16 Correct 3 ms 720 KB Output is correct
17 Correct 2 ms 720 KB Output is correct
18 Correct 3 ms 720 KB Output is correct
19 Correct 3 ms 720 KB Output is correct
20 Correct 3 ms 720 KB Output is correct
21 Correct 4 ms 720 KB Output is correct
22 Correct 3 ms 720 KB Output is correct
23 Correct 4 ms 764 KB Output is correct
24 Correct 3 ms 764 KB Output is correct
25 Correct 4 ms 764 KB Output is correct
26 Correct 4 ms 764 KB Output is correct
27 Correct 4 ms 764 KB Output is correct
28 Correct 4 ms 764 KB Output is correct
29 Correct 5 ms 764 KB Output is correct
30 Correct 3 ms 764 KB Output is correct
31 Correct 4 ms 764 KB Output is correct
32 Correct 2 ms 764 KB Output is correct
33 Correct 12 ms 764 KB Output is correct
34 Correct 79 ms 764 KB Output is correct
35 Correct 3 ms 764 KB Output is correct
36 Correct 177 ms 764 KB Output is correct
37 Correct 8 ms 764 KB Output is correct
38 Correct 5 ms 764 KB Output is correct
39 Correct 4 ms 764 KB Output is correct
40 Correct 225 ms 764 KB Output is correct
41 Execution timed out 1076 ms 764 KB Time limit exceeded
42 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 764 KB Output is correct
2 Correct 3 ms 764 KB Output is correct
3 Correct 2 ms 764 KB Output is correct
4 Correct 3 ms 764 KB Output is correct
5 Correct 3 ms 764 KB Output is correct
6 Correct 6 ms 764 KB Output is correct
7 Correct 3 ms 764 KB Output is correct
8 Correct 3 ms 764 KB Output is correct
9 Correct 3 ms 764 KB Output is correct
10 Correct 3 ms 764 KB Output is correct
11 Correct 3 ms 764 KB Output is correct
12 Correct 3 ms 764 KB Output is correct
13 Correct 7 ms 764 KB Output is correct
14 Correct 3 ms 764 KB Output is correct
15 Correct 3 ms 764 KB Output is correct
16 Correct 6 ms 764 KB Output is correct
17 Correct 4 ms 764 KB Output is correct
18 Correct 4 ms 764 KB Output is correct
19 Correct 3 ms 764 KB Output is correct
20 Correct 11 ms 764 KB Output is correct
21 Correct 52 ms 812 KB Output is correct
22 Correct 3 ms 812 KB Output is correct
23 Correct 153 ms 812 KB Output is correct
24 Correct 8 ms 812 KB Output is correct
25 Correct 5 ms 812 KB Output is correct
26 Correct 4 ms 812 KB Output is correct
27 Correct 222 ms 812 KB Output is correct
28 Execution timed out 1065 ms 812 KB Time limit exceeded
29 Halted 0 ms 0 KB -