제출 #1107473

#제출 시각아이디문제언어결과실행 시간메모리
1107473vjudge1Kpart (eJOI21_kpart)C++17
10 / 100
2056 ms2172 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define sz(x) x.size() #define pb push_back #define F first #define S second #define nl '\n' const int N = 1001; int ans[N], a[N], p[N]; void solve() { int n; cin >>n; int a[n + 1], p[n + 1]; for( int i = 1; i <= n; ++i ) { cin >>a[i]; p[i] = p[i - 1] + a[i]; } for( int i = 1; i < n; ++i ) { set< int >st; st.insert( 0 ); st.insert( a[i] ); for( int j = i + 1; j <= n; ++j ) { vector< int >s; for( auto x: st ) s.pb( x ); for( int x: s ) st.insert(x + a[j]); int sum = p[j] - p[i - 1]; if( sum & 1 ) continue; if( st.count(sum / 2) ) ans[j - i + 1]++; } } vector< int >v; for( int i = 1; i <= n; ++i ) { if( ans[i] == n - i + 1 ) v.pb( i ); ans[i] = 0; } cout <<sz(v) <<' '; for( int i: v ) cout <<i <<' '; cout <<nl; } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); //freopen("input.txt", "r", stdin); //freopen("output.txt", "w", stdout); int T = 1; cin >>T; while( T-- ) solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...