제출 #786913

#제출 시각아이디문제언어결과실행 시간메모리
786913BulaKpart (eJOI21_kpart)C++17
30 / 100
2095 ms342868 KiB
#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];

main(){
	int tt;
	cin>>tt;
	while(tt--){
		int n;
		cin>>n;
		vector<int> v(n+1),pref(n+1);
		int s=0;
		for(int i=1;i<=n;i++){
			cin>>v[i];
			s+=v[i];
		}
		for(int i=1;i<=n;i++){
			pref[i]=pref[i-1]+v[i];
		}
		
		for(int i=1;i<=n;i++){
			for(int j=1;j<=s;j++){
				dp[i][j]=0;
			}
		}
		
		for(int i=1;i<=n;i++){
			for(int j=s;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;
//		}
	}
}

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

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:55: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]
   55 |   for(int i=0;i<k.size();i++){
      |               ~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...