Submission #111332

# Submission time Handle Problem Language Result Execution time Memory
111332 2019-05-14T19:52:26 Z vex Xylophone (JOI18_xylophone) C++14
0 / 100
2 ms 384 KB
#include<bits/stdc++.h>
#include<xylophone.h>
using namespace std;
 
int d1[5005];
int d2[5005];
int zn[5005];
int a[5005];
 
void solve(int n)
{
	for(int i=1;i<n;i++)d1[i]=query(i,i+1);
	for(int i=1;i<n-1;i++)d2[i]=query(i,i+2);
	
	zn[1]=1;
	for(int i=2;i<n-1;i++)
	{
		if(d1[i-1]+d1[i]==d2[i-1])zn[i]=zn[i-1];
		else zn[i]=-zn[i-1];
	}
	
	int tre=0;
	int minv=0;int minn=1;
	int maxv=0;int maxx=1;
	for(int i=2;i<=n;i++)
	{
		tre+=d1[i-1]*zn[i-1];
		if(tre>maxv)
		{
			maxv=tre;
			maxx=i;
		}
		if(tre<minv)
		{
			minv=tre;
			minn=i;
		}
	}
	
	int sgn=1;
	if(minn>maxx)
	{
		sgn=-sgn;
		swap(minn,maxx);
	}
	
	a[minn]=1;
	for(int i=minn+1;i<=n;i++)a[i]=a[i-1]+sgn*d1[i-1]*zn[i-1];
	for(int i=minn-1;i>0;i--)a[i]=a[i+1]-sgn*d1[i]*zn[i];
	
	for(int i=1;i<=n;i++)answer(i,a[i]);
}
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Incorrect 2 ms 384 KB Wrong Answer [7]
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Incorrect 2 ms 384 KB Wrong Answer [7]
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Incorrect 2 ms 384 KB Wrong Answer [7]
3 Halted 0 ms 0 KB -