Submission #1280690

#TimeUsernameProblemLanguageResultExecution timeMemory
1280690azik21Kpart (eJOI21_kpart)C++20
10 / 100
2094 ms904 KiB
#include <map> #include <set> #include <unordered_set> #include <list> #include <cmath> #include <ctime> #include <deque> #include <queue> #include <stack> #include <string> #include <bitset> #include <cstdio> #include <limits> #include <vector> #include <climits> #include <cstring> #include <cstdlib> #include <fstream> #include <numeric> #include <sstream> #include <cassert> #include <iomanip> #include <iostream> #include <algorithm> #include <stdio.h> #include <fstream> #include <unordered_map> #include <complex> #define int long long #define pb push_back #define all(v) (v).begin() , (v).end() using namespace std; const int N = 6e4+18; signed main(){ // kbo 9.11 ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int T = 1 ; cin >> T ; while(T--){ int n ; cin >> n ; int a[n+1] , us[n + 3 ]; for(int i=1 ; i <= n; i++){ cin >> a[i]; us[i] =0 ; } for(int l = 1 ; l <= n; l++){ vector<int>dp(N , 0 ); dp[0] = 1; int sum =0 ; for(int r = l; r <= n ;r++){ sum+=a[r]; for(int w = N - 18 ; w >= a[r] ; w--){ dp[w]+=dp[w-a[r]]; } if(sum % 2 == 0 && dp[sum / 2])us[r - l + 1 ]++; } } vector<int>v; for(int i= 1 ; i <= n;i++){ if(us[i]== n - i + 1 )v.pb(i); // cout << us[i] << ' ' << n - i + 1 << '\n'; } cout << v.size() << ' '; for(auto it:v)cout <<it << ' '; cout << '\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...