답안 #786917

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
786917 2023-07-18T14:41:51 Z Bula Kpart (eJOI21_kpart) C++17
100 / 100
1853 ms 391340 KB
#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define pb push_back
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()
#define int ll
const ll mod=1e9+7;
int dp[1001][50001],pref[1001];

main(){
	int tt;
	cin>>tt;
	while(tt--){
		int n;
		cin>>n;
		vector<int> v(n+1);
		int s=0;
		for(int i=1;i<=n;i++){
			cin>>v[i];
			pref[i]=0;
			s+=v[i];
		}
		
		for(int i=1;i<=n;i++){
			for(int j=1;j<=s/2;j++){
				dp[i][j]=0;
			}
		}
		
		for(int i=1;i<=n;i++){
			pref[i]=pref[i-1]+v[i];
			for(int j=s/2;j>=1;j--){
				dp[i][j]=dp[i-1][j];
				if(j>v[i]) dp[i][j]=max(dp[i][j],dp[i-1][j-v[i]]);
				if(j==v[i]) dp[i][j]=i;
			}
		}
		vector<int> k;
		for(int i=2;i<=n;i++){
			bool ok = true;
			for(int j=i;j<=n;j++){
				int sum=pref[j]-pref[j-i];
				if(sum%2==1 || dp[j][sum/2]<=j-i){
					ok = false;
					break;
				}
			}
			if(ok == true) k.pb(i);
		}
		
		cout<<k.size()<<" ";
		for(int i=0;i<k.size();i++){
			cout<<k[i]<<" ";
		}
		cout<<endl;
		
//		for(int i=1;i<=n;i++){
//			for(int j=1;j<=s;j++){
//				cout<<dp[i][j]<<" ";
//			}
//			cout<<endl;
//		}
	}
}

Compilation message

Main.cpp:12:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   12 | main(){
      | ^~~~
Main.cpp: In function 'int main()':
Main.cpp:54:16: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   54 |   for(int i=0;i<k.size();i++){
      |               ~^~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 724 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 7 ms 2516 KB Output is correct
2 Correct 19 ms 7032 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 100 ms 27304 KB Output is correct
2 Correct 285 ms 61400 KB Output is correct
3 Correct 326 ms 78160 KB Output is correct
4 Correct 586 ms 130752 KB Output is correct
5 Correct 1323 ms 320764 KB Output is correct
6 Correct 1853 ms 385588 KB Output is correct
7 Correct 1686 ms 391340 KB Output is correct