Submission #763239

#TimeUsernameProblemLanguageResultExecution timeMemory
763239vjudge1Xylophone (JOI18_xylophone)C++14
100 / 100
91 ms340 KiB
#include<xylophone.h>
#include<bits/stdc++.h>
typedef long long ll;
using namespace std;

const int maxn=200005;

int n;
int a[maxn];

void solve(int n)
{
    a[1]=0;
    a[2]=query(1,2);
    for (int i=3; i<=n; i++)
    {
        int x=query(i-2,i);
        int y=query(i-1,i);
        if (x!=y+abs(a[i-1]-a[i-2]) && a[i-2]>a[i-1])
        {
            a[i]=a[i-1]+y;
        }
        else if (x==y+abs(a[i-1]-a[i-2]) && a[i-2]<a[i-1])
        {
            a[i]=a[i-1]+y;
        }
        else
        {
            a[i]=a[i-1]-y;
        }
    }
    int minn=1e9;
    int mann=-1e9;
    for (int i=1; i<=n; i++)
    {
        minn=min(minn,a[i]);
        mann=max(mann,a[i]);
    }
    int pos_min;
    int pos_max;
    for (int i=1; i<=n; i++)
    {
        if (a[i]==minn)
        {
            pos_min=i;
        }
        if (a[i]==mann)
        {
            pos_max=i;
        }
    }
    if (pos_min>pos_max)
    {
        for (int i=1; i<=n; i++)
        {
            a[i]*=-1;
        }
        minn=1e9;
        mann=-1e9;
        for (int i=1; i<=n; i++)
        {
            minn=min(minn,a[i]);
            mann=max(mann,a[i]);
        }
    }
    for (int i=1; i<=n; i++)
    {
        answer(i,a[i]-minn+1);
    }
}

Compilation message (stderr)

xylophone.cpp: In function 'void solve(int)':
xylophone.cpp:52:5: warning: 'pos_max' may be used uninitialized in this function [-Wmaybe-uninitialized]
   52 |     if (pos_min>pos_max)
      |     ^~
xylophone.cpp:52:5: warning: 'pos_min' 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...