Submission #635096

#TimeUsernameProblemLanguageResultExecution timeMemory
635096PoonYaPatGondola (IOI14_gondola)C++14
Compilation error
0 ms0 KiB
#include "gondola.h"
#include "grader.cpp"

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

const int mod=1000000009;
bool have[250001];
int head[250001];


int valid(int n, int s[]) {

    for (int i=0; i<n; ++i) {
        if (s[i]<=n) {
            int val=s[i];
            for (int j=i+1; j<n; ++j) {
                ++val;
                if (val>n) val-=n;
                if (s[j]<=n && s[j]!=val) return 0;
            }
            break;
        }
    }

    sort(s,s+n);
    for (int i=1; i<n; ++i) if (s[i]==s[i-1]) return 0;

  	return 1;
}

int replacement(int n, int s[], int ans[]) {
    int mmax=0,hm,sc=0;
    bool fix=false;
    for (int i=0; i<n; ++i) {
        mmax=max(mmax,s[i]);
        if (s[i]<=n) {
            fix=true;
            if (sc==0) sc=i;
        }
    }

    if (!fix) {
        for (int i=0; i<n; ++i) {
            head[s[i]]=i+1;
        }
    } else {
        int val=s[sc];
        for (int i=sc; i<n; ++i) {
            head[s[i]]=val++;
            if (val>n) val-=n;
        }
      	for (int i=0; i<sc; ++i) {
          	head[s[i]]=val++;
          	if (val>n) val-=n;
        }
    }
    hm=head[mmax];

    int idx=0;
    for (int i=n+1; i<mmax; ++i) {
        if (!head[i]) {
            ans[idx++]=hm;
            hm=i;
        } else {
            ans[idx++]=head[i];
        }
    }
    ans[idx]=hm;

    return mmax-n;
}

int countReplacement(int n, int s[]) {
    if (!valid(n,s)) return 0;

    ll ans=1;
    bool rot=false;

    int cnt=n,mmax=0;
    for (int i=0; i<n; ++i) {
        have[s[i]]=true;
        if (s[i]<=n) --cnt;
        mmax=max(mmax,s[i]);
    }

    if (cnt==n) rot=true;

    for (int i=n+1; i<=mmax; ++i) {
        if (have[i]) --cnt;
        else if (cnt) ans=(ans*cnt)%mod;
    }

    if (rot) {
        for (int i=1; i<=n; ++i) ans=(ans*i)%mod;
    }

    return ans%mod;
}

Compilation message (stderr)

/usr/bin/ld: /tmp/cceLKn1Q.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccMDRf5T.o:gondola.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/cceLKn1Q.o:(.bss+0xf4260): multiple definition of `gondolaSequence'; /tmp/ccMDRf5T.o:(.bss+0x225560): first defined here
/usr/bin/ld: /tmp/cceLKn1Q.o:(.bss+0x0): multiple definition of `replacementSequence'; /tmp/ccMDRf5T.o:(.bss+0x131300): first defined here
collect2: error: ld returned 1 exit status