/ SeriousOJ /

Record Detail

Memory Exceeded


  
# Status Time Cost Memory Cost
#1 Accepted 2ms 332.0 KiB
#2 Wrong Answer 2ms 328.0 KiB
#3 Accepted 3ms 484.0 KiB
#4 Wrong Answer 42ms 592.0 KiB
#5 Memory Exceeded ≥101ms ≥256.016 MiB
#6 Memory Exceeded ≥101ms ≥256.016 MiB
#7 Memory Exceeded ≥98ms ≥256.016 MiB
#8 Memory Exceeded ≥98ms ≥256.016 MiB

Code

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

bool v(vector<int>& a, int p) {
    int n = a.size();
    int np = n / p;

    for (int i = 0; i < np; ++i) {
        int s = i * p;
        int e = s + p - 1;
        int mi = *min_element(a.begin() + s, a.begin() + e + 1);
        int ma = *max_element(a.begin() + s, a.begin() + e + 1);

        if ((ma - mi) != (a[p - 1] - a[0])) {
            return false;
        }
    }

    return true;
}

int m(vector<int>& a, int n) {
    int l = 2, h = n / 2, ans = 1;

    while (l <= h) {
        int m = l + (h - l) / 2;
        if (v(a, m)) {
            ans = m;
            l = m + 1;
        } else {
            h = m - 1;
        }
    }

    return ans;
}

int main() {
    int t;
    cin >> t;

    while (t--) {
        int n;
        cin >> n;

        vector<int> a(n);
        for (int i = 0; i < n; ++i) {
            a[i] = i + 1;
        }

        int mx = m(a, n);

        cout << mx << endl;
    }

    return 0;
}

Information

Submit By
Type
Submission
Problem
P1052 Yet Another Array Partition
Contest
Brain Booster #3
Language
C++20 (G++ 13.2.0)
Submit At
2024-05-06 15:19:00
Judged At
2024-10-03 13:52:26
Judged By
Score
10
Total Time
≥101ms
Peak Memory
≥256.016 MiB