제출 #1154332

#제출 시각아이디문제언어결과실행 시간메모리
1154332Robert_juniorBootfall (IZhO17_bootfall)C++17
65 / 100
1059 ms17712 KiB
#include<bits/stdc++.h> using namespace std; #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") #pragma GCC optimize("Ofast,unroll-loops,fast-math,O3") #define all(x) x.begin(), x.end() #define ins insert #define pb push_back #define F first #define S second const int N = 250, M = 500; bitset<250100>dp[501]; int a[501], cnt[250100], sum; void solve(){ int n; cin>>n; dp[0][0] = 1; for(int i = 1; i <= n; i++){ cin>>a[i]; dp[0] |= (dp[0]<<a[i]); sum += a[i]; } if(sum % 2 == 1 || dp[0][sum / 2] == 0){ //cout<<sum<<' '<<dp[0][sum / 2]<<'\n'; cout<<"0"; return; } for(int i = 1; i <= n; i++){ dp[i][0] = 1; for(int j = 1; j <= n; j++){ if(i == j) continue; dp[i] |= (dp[i]<<a[j]); } for(int j = 0; j <= sum - a[i]; j++){ if(!dp[i][j]) continue; int x = j, y = sum - a[i] - j; cnt[abs(x - y)]++; } } vector<int>ans; for(int i = 0; i <= 250000; i++){ if(cnt[i] == n * 2) ans.pb(i); } cout<<ans.size()<<'\n'; for(auto it : ans) cout<<it<<' '; } main(){ ios_base :: sync_with_stdio(false); cin.tie(nullptr); int t = 1; //cin>>t; for(int i = 1; i <= t; i++){ //cout<<"Case "<<i<<": "; solve(); } }

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

bootfall.cpp:46:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   46 | main(){
      | ^~~~
#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...