Submission #1278453

#TimeUsernameProblemLanguageResultExecution timeMemory
1278453MMihalevAncient Books (IOI17_books)C++20
Compilation error
0 ms0 KiB
#include<iostream>
#include<vector>
#include "books.h"
using namespace std;
const int MAX_N=1e6+6;
int col[MAX_N];
int cols;
int a[MAX_N];
int l[MAX_N];
int r[MAX_N];
int n;
long long ans;
long long minimum_walk(std::vector<int> p, int s)
{
    n=p.size();
    s++;
    for(int i=1;i<=n;i++)
    {
        l[i]=1e9;
        r[i]=-1;
        a[i]=p[i-1]+1;
    }
    ///init stuff

    for(int i=1;i<=n;i++)
    {
        ans+=abs(i-a[i]);
        if(col[i]==0)
        {
            if(i!=s && i==a[i])continue;
            cols++;
            int pos=i;
            while(col[pos]==0)
            {
                l[cols]=min(l[cols],pos);
                r[cols]=max(r[cols],pos);
                col[pos]=cols;
                pos=a[pos];
            }
        }
    }

    vector<int>sep;
    bool has=0;
    int active=0;
    for(int i=1;i<=n;i++)
    {
        if(has && active==0)
        {
            sep.push_back(i-1);
        }

        int curcol=col[i];
        if(l[curcol]==i)
        {
            has=1;
            active++;
        }
        if(r[curcol]==i)active--;
    }
    if(sep.size()==0)return ans;
    ///cycle stuff


    for(int i=sep.size()-1;i>=0;i--)
    {
        if(i==sep.size()-1)
        {
            if(sep[i]>=s && a[n]!=n)ans+=2;
            continue;
        }

        if(sep[i]>=s && )ans+=2;
    }
    ///right part


    for(int i=0;i<sep.size();i++)
    {
        //cout<<sep[i]<<" ";
        //cout<<"\n";
        if(sep[i]<s)ans+=2;
    }
    ///left part


	return ans;
}

Compilation message (stderr)

books.cpp: In function 'long long int minimum_walk(std::vector<int>, int)':
books.cpp:73:25: error: expected primary-expression before ')' token
   73 |         if(sep[i]>=s && )ans+=2;
      |                         ^