Submission #549887

#TimeUsernameProblemLanguageResultExecution timeMemory
549887HanksburgerXylophone (JOI18_xylophone)C++17
100 / 100
97 ms416 KiB
#include "xylophone.h"
#include <bits/stdc++.h>
using namespace std;
int a[5005];
void solve(int n)
{
	a[2]=query(1, 2);
	for (int i=3; i<=n; i++)
	{
		int res1=query(i-1, i), res2=query(i-2, i);
		if (res1==res2)
		{
			if (a[i-2]<a[i-1])
				a[i]=a[i-1]-res1;
			else
				a[i]=a[i-1]+res1;
		}
		else
		{
			if (a[i-2]<a[i-1])
			{
				if (res2==a[i-1]-a[i-2])
					a[i]=a[i-1]-res1;
				else
					a[i]=a[i-1]+res1;
			}
			else
			{
				if (res2==a[i-2]-a[i-1])
					a[i]=a[i-1]+res1;
				else
					a[i]=a[i-1]-res1;
			}
		}
	}
	int maxi=0, pos1, posn;
	for (int i=1; i<=n; i++)
		maxi=max(maxi, a[i]);
	for (int i=1; i<=n; i++)
		a[i]+=n-maxi;
	for (int i=1; i<=n; i++)
	{
		if (a[i]==1)
			pos1=i;
		else if (a[i]==n)
			posn=i;
	}
	if (pos1>posn)
		for (int i=1; i<=n; i++)
			a[i]=n-a[i]+1;
	for (int i=1; i<=n; i++)
		answer(i, a[i]);
}

Compilation message (stderr)

xylophone.cpp: In function 'void solve(int)':
xylophone.cpp:48:2: warning: 'posn' may be used uninitialized in this function [-Wmaybe-uninitialized]
   48 |  if (pos1>posn)
      |  ^~
xylophone.cpp:48:2: warning: 'pos1' may be used uninitialized in this function [-Wmaybe-uninitialized]
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...