Submission #1319083

#TimeUsernameProblemLanguageResultExecution timeMemory
1319083neonglitchDEL13 (info1cup18_del13)C++20
6 / 100
2 ms332 KiB
#include <iostream>
using namespace std;
const int N=2e5+10;
int a[N],gap[N];
bool dp[N][7];
void solve()
{
	int n,k;
	cin>>n>>k;
	a[0]=0;
	for(int i=1;i<=k+1;i++)
	{
		if(i<=k)
			cin>>a[i];
		else{
			a[i]=n+1;
		}
		gap[i]=a[i]-a[i-1]-1;
		if(gap[i]>2)
		{
			gap[i]=2-(gap[i]%2);
		}
	}
	// gap[i]<=2
	for(int i=0;i<=k+1;i++)dp[i][0]=dp[i][1]=dp[i][2]=dp[i][3]=0;
	dp[1][gap[1]]=1;
	for(int i=2;i<=k+1;i++)
	{
		if(dp[i-1][0])
		{
			dp[i][gap[i]]=1;
		}
		if(dp[i-1][1] and gap[i]>=1)
		{
			dp[i][gap[i]-1]=1;
		}
		if(dp[i-1][2] and gap[i]>=2)
		{
			dp[i][gap[i]-2]=1;
		}
	}
	int r=-1;
	if(dp[k+1][0])r=0;
	cout<<r<<endl;
}

int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int t;
	cin>>t;
	while(t--)
	{
		solve();
	}

}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...