Submission #1367206

#TimeUsernameProblemLanguageResultExecution timeMemory
1367206jbn8Bootfall (IZhO17_bootfall)C++20
44 / 100
1027 ms1492 KiB
#include <cstdio>
#include <algorithm>
#include <array>
using namespace std;

const int maxN = 500;
const int maxA = 501;
int main(){
    int N;
    scanf("%d\n", &N);
    array<int, maxN+1> a{};
    int sum = 0;
    for(int i=0; i<N; i++){
        scanf("%d", &a[i]);
        sum += a[i];
    }
    sort(a.begin(), a.begin()+N);
    array<int, maxA*maxN> poss;
    for(int i=0; i<N+1; i++){
        int part = sum-a[i];
        array<bool, maxN*maxA/2> possreferee{};
        possreferee[0] = true;
        for(int idp=0; idp<N; idp++){
            if(idp == i)continue;
            for(int j=part/2-a[idp]; j >= 0; j--){
                if(possreferee[j]){
                    possreferee[j+a[idp]] = true;
                }
            }
        }
        if(i == N && !possreferee[part/2]){
            printf("0\n");
            return 0;
        }
        if(i == N)continue;
        for(int idw=0; idw<=part/2; idw++){
            if(possreferee[idw]){
                poss[part-idw*2]++;
            }
        }
    }
    int count = 0;
    for(int i=0; i<sum; i++)
        count += poss[i] == N;
    printf("%d\n", count);
    for(int i=0; i<sum; i++){
        if(poss[i] == N){
            printf("%d ", i);
        }
    }
    printf("\n");
}

Compilation message (stderr)

bootfall.cpp: In function 'int main()':
bootfall.cpp:10:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   10 |     scanf("%d\n", &N);
      |     ~~~~~^~~~~~~~~~~~
bootfall.cpp:14:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   14 |         scanf("%d", &a[i]);
      |         ~~~~~^~~~~~~~~~~~~
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...