/ SeriousOJ /

Record Detail

Time Exceeded


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Accepted 53ms 552.0 KiB
#3 Accepted 47ms 532.0 KiB
#4 Accepted 49ms 532.0 KiB
#5 Accepted 28ms 532.0 KiB
#6 Accepted 17ms 532.0 KiB
#7 Accepted 25ms 532.0 KiB
#8 Accepted 114ms 532.0 KiB
#9 Accepted 47ms 532.0 KiB
#10 Accepted 338ms 560.0 KiB
#11 Accepted 244ms 560.0 KiB
#12 Accepted 52ms 324.0 KiB
#13 Time Exceeded ≥4099ms ≥532.0 KiB
#14 Time Exceeded ≥4095ms ≥532.0 KiB

Code

#include <bits/stdc++.h>
using namespace std;

bool validPartition(vector<int>& A, int blockSize) {
    int N = A.size();
    if (N % blockSize != 0 || blockSize < 2) return false;
    int blocks = N / blockSize;
    for (int i = 0; i < blocks; ++i) {
        int l = i * blockSize;
        int r = l + blockSize;
        int mx = *max_element(A.begin() + l, A.begin() + r);
        int mn = *min_element(A.begin() + l, A.begin() + r);
        if (i == 0) {
            int diff = mx - mn;
            for (int j = 1; j < blocks; ++j) {
                int ll = j * blockSize;
                int rr = ll + blockSize;
                int mxx = *max_element(A.begin() + ll, A.begin() + rr);
                int mnn = *min_element(A.begin() + ll, A.begin() + rr);
                if ((mxx - mnn) != diff) return false;
            }
            return true;
        }
    }
    return false;
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int T;
    cin >> T;
    while (T--) {
        int N;
        cin >> N;
        vector<int> A(N);
        for (int i = 0; i < N; i++) cin >> A[i];

        int maxBlocks = 1;
        sort(A.begin(), A.end());
        do {
            for (int len = 2; len <= N; ++len) {
                if (N % len == 0) {
                    if (validPartition(A, len)) {
                        maxBlocks = max(maxBlocks, N / len);
                    }
                }
            }
        } while (next_permutation(A.begin(), A.end()));

        cout << maxBlocks << '\n';
    }
    return 0;
}

Information

Submit By
Type
Submission
Problem
P1162 G. Roy and Maximum Partition
Language
C++17 (G++ 13.2.0)
Submit At
2025-08-03 13:40:31
Judged At
2025-08-03 13:40:31
Judged By
Score
50
Total Time
≥4099ms
Peak Memory
≥560.0 KiB