/ SeriousOJ /

Record Detail

Wrong Answer


  
# Status Time Cost Memory Cost
#1 Wrong Answer 1ms 532.0 KiB
#2 Wrong Answer 1ms 532.0 KiB

Code

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

bool checkValid(const vector<int>& A, int blockSize) {
    int N = A.size();
    int k = N / blockSize;
    vector<vector<int>> blocks(k);
    for (int i = 0; i < N; ++i) {
        blocks[i % k].push_back(A[i]);
    }
    int diff = -1;
    for (int i = 0; i < k; ++i) {
        if (blocks[i].size() != blockSize) return false;
        int mn = *min_element(blocks[i].begin(), blocks[i].end());
        int mx = *max_element(blocks[i].begin(), blocks[i].end());
        int d = mx - mn;
        if (diff == -1) diff = d;
        else if (diff != d) return false;
    }
    return true;
}

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 answer = 1;
        sort(A.begin(), A.end());
        vector<int> divisors;
        for (int i = 2; i <= N; ++i) {
            if (N % i == 0) divisors.push_back(i);
        }

        for (int len : divisors) {
            if (checkValid(A, len)) {
                answer = max(answer, N / len);
            }
        }

        cout << answer << '\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:42:24
Judged At
2025-08-03 13:42:24
Judged By
Score
0
Total Time
1ms
Peak Memory
532.0 KiB