제출 #299096

#제출 시각아이디문제언어결과실행 시간메모리
299096TadijaSebezBootfall (IZhO17_bootfall)C++11
44 / 100
1097 ms1148 KiB
#include <bits/stdc++.h> using namespace std; const int N=505; int n,a[N]; bitset<N*N> DP(int skip){ bitset<N*N> ans; ans[0]=1; for(int i=1;i<=n;i++)if(i!=skip)ans|=ans<<a[i]; return ans; } int ok[N*N]; int main(){ scanf("%i",&n); int sum=0; for(int i=1;i<=n;i++)scanf("%i",&a[i]),sum+=a[i]; bitset<N*N> all=DP(0); if(sum&1||!all[sum/2])return 0*printf("0\n"); for(int i=1;i<=n;i++){ bitset<N*N> dp=DP(i); for(int j=1;j<=sum;j++){ if((sum-a[i]+j)%2==0&&dp[(sum-a[i]+j)/2]) ok[j]++; } } vector<int> ans; for(int i=1;i<=sum;i++)if(ok[i]==n)ans.push_back(i); printf("%i\n",ans.size()); for(int i:ans)printf("%i ",i); printf("\n"); return 0; }

컴파일 시 표준 에러 (stderr) 메시지

bootfall.cpp: In function 'int main()':
bootfall.cpp:27:11: warning: format '%i' expects argument of type 'int', but argument 2 has type 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wformat=]
   27 |  printf("%i\n",ans.size());
      |          ~^    ~~~~~~~~~~
      |           |            |
      |           int          std::vector<int>::size_type {aka long unsigned int}
      |          %li
bootfall.cpp:13:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   13 |  scanf("%i",&n);
      |  ~~~~~^~~~~~~~~
bootfall.cpp:15:28: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   15 |  for(int i=1;i<=n;i++)scanf("%i",&a[i]),sum+=a[i];
      |                       ~~~~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...