답안 #778765

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
778765 2023-07-10T16:20:27 Z benjaminkleyn Bali Sculptures (APIO15_sculpture) C++17
0 / 100
2 ms 328 KB
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx,avx2,fma,bmi,bmi2")
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;

int n, A, B;
ull x[2001], pref[2001];

int main()
{
    cin.tie(0)->sync_with_stdio(0);

    cin >> n >> A >> B;
    for (int i = 1; i <= n; i++)
        cin >> x[i];

    pref[0] = 0;
    for (int i = 1; i <= n; i++)
        pref[i] = pref[i-1] + x[i];

    ull mask = 0;
    vector<pair<int,int>> segments = {{1, n}};
    for (ull y = 1LL << 63; y; y >>= 1)
    {
        vector<pair<int,int>> new_segments;
        bool possible = true;
        for (auto [L, R] : segments)
        {
            for (int l = L; l <= R; l++)
            {
                possible = false;
                for (int r = R; r >= l; r--)
                    if (((pref[r] - pref[l-1]) & (mask | y)) == 0)
                    {
                        new_segments.push_back({l, r});
                        l = r;
                        possible = true;
                        break;
                    }
                if (!possible) break;
            }
            if (!possible) break;
        }
        if (possible && new_segments.size() <= B)
            segments = new_segments, mask |= y;
    }
    /*
    for (auto [l, r] : segments)
        cout << "(" << l << ", " << r << ") ";
    cout << '\n';
    */
    cout << (~mask) << '\n';

    return 0;
}

Compilation message

sculpture.cpp: In function 'int main()':
sculpture.cpp:46:45: warning: comparison of integer expressions of different signedness: 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   46 |         if (possible && new_segments.size() <= B)
      |                         ~~~~~~~~~~~~~~~~~~~~^~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 324 KB Output is correct
5 Correct 0 ms 324 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Incorrect 1 ms 328 KB Output isn't correct
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 320 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 2 ms 320 KB Output is correct
7 Incorrect 0 ms 212 KB Output isn't correct
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Incorrect 0 ms 212 KB Output isn't correct
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 316 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 0 ms 324 KB Output is correct
5 Correct 0 ms 320 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Incorrect 0 ms 320 KB Output isn't correct
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 324 KB Output is correct
6 Correct 0 ms 324 KB Output is correct
7 Incorrect 1 ms 212 KB Output isn't correct
8 Halted 0 ms 0 KB -