QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#884018#9729. Dividing SequencezhanghuanruiRE 0ms0kbC++141.1kb2025-02-05 20:53:482025-02-05 20:53:48

Judging History

This is the latest submission verdict.

  • [2025-02-05 20:53:48]
  • Judged
  • Verdict: RE
  • Time: 0ms
  • Memory: 0kb
  • [2025-02-05 20:53:48]
  • Submitted

answer

#include <bits/stdc++.h>
#ifdef zhr_debug
void debug(const char *s,...){static va_list args;va_start(args,s);vfprintf(stderr,s,args);va_end(args);}
#else
void debug(const char* s,...){}
#endif
using namespace std;
void freopen(string file){freopen((file+".in").c_str(),"r",stdin);freopen((file+".out").c_str(),"w",stdout);}
const int inf=0x3f3f3f3f;
int n;
int a[5020];
bool ok[5020];
bool nxt[5020];
int ans[5020],len;
void solve()
{
	cin>>n;
	for(int i=1;i<=n;i++) scanf("%d",a[i]);
	memset(ok,0,sizeof(ok));
	ok[1]=true;len=0;
	while(1)
	{
		int x=inf;
		for(int i=len+1;i<=n;++i) if(ok[i]) x=min(x,a[i]);
		ans[++len]=x;
		if(ok[n] && a[n]==x) break;
		memset(nxt,0,sizeof(nxt));
		bool f=false;
		for(int i=len;i<n;++i)
		{
			if(ok[i] && a[i]==x || f)
			{
				f=false;
				if(i+1-len<=len && ans[i+1-len]>=a[i+1])
				{
					f=true;
					if(ans[i+1-len]>a[i+1]) break;
				}
				nxt[i+1]=true;
			}
		}
		if(f) break;
		memcpy(ok,nxt,sizeof(ok));
	}
	printf("%d\n",len);
	for(int i=1;i<=len;i++) printf("%d ",ans[i]);printf("\n");
}
signed main()
{
	int t;
	cin>>t;
	while(t--) solve();
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Runtime Error

input:

5
5
3 1 2 3 2
3
1 1 2
3
3 3 3
5
1 3 1 3 1
5
2 2 1 3 3

output:


result: