Submission #892031

#TimeUsernameProblemLanguageResultExecution timeMemory
892031MihailoFun Tour (APIO20_fun)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
#define mp make_pair
using namespace std;

long long c, d[200000], l[4], k[200000], x, p[200000], M, m, ctr;
priority_queue<pair<long long, long long> > q[4];

long long * createFunTour(long long n, long long q) {
    c=1;
    for(int i=2; i<=n; i++) {
        if(attractionsBehind(c, i)>=n/2) c=i;
    }
    x=1;
    for(int i=1; i<=n; i++) {
        if(i!=c) d[i]=hoursRequired(c, i);
        if(d[i]==1) {l[x]=i;k[i]=x;x++;}
    }
    for(int i=1; i<=n; i++) {
        if(k[i]==0&&i!=c) {
            if(hoursRequired(i, l[1])<d[i]) k[i]=1;
            else if(hoursRequired(i, l[2])<d[i]) k[i]=2;
            else k[i]=3;
        }
    }
    for(int i=1; i<=n; i++) {
        q[k[i]].push(mp(d[i], i));
    }
    x=0;
    ctr=1;
    while(2*max(max(q[1].size(), q[2].size()), q[3].size())<q[1].size()+q[2].size()+q[3].size()) {
        m=0;
        for(int i=1; i<=3; i++) {
            if(i!=x) {
                if(m<q[i].front().first) {
                    m=q[i].front().first;
                    M=i;
                }
            }
        }
        x=M;
        p[ctr]=q[x].front().second;
        ctr++;
        q[x].pop();
    }
    for(int i=1; i<=3; i++) {
        if(q[i].size()==max(max(q[1].size(), q[2].size()), q[3].size())) M=i;
    }
    for(int i=1; i<=3; i++) {
        if(x!=i&&q[i].size()!=max(max(q[1].size(), q[2].size()), q[3].size())&&q[i].front().first==max(max(q[1].front().first, q[2].front().first), q[3].front().first)) {
            p[ctr]=q[i].front().second;
            ctr++;
            q[i].pop();
            x=i;
        }
    }
    if(M!=x) {
        p[ctr]=q[M].front().second;
        ctr++;
        q[M].pop();
        x=M;
    }
    while(2*max(max(q[1].size(), q[2].size()), q[3].size())>0) {
        m=0;
        if(x==M)
            for(int i=1; i<=3; i++) {
                if(i!=M) {
                    if(m<q[i].front().first) {
                        m=q[i].front().first;
                        x=i;
                    }
                }
            }
        else x=M;
        p[ctr]=q[x].front().second;
        ctr++;
        q[x].pop();
    }
    p[ctr]=c;
    return p;
}

Compilation message (stderr)

fun.cpp: In function 'long long int* createFunTour(long long int, long long int)':
fun.cpp:11:12: error: 'attractionsBehind' was not declared in this scope
   11 |         if(attractionsBehind(c, i)>=n/2) c=i;
      |            ^~~~~~~~~~~~~~~~~
fun.cpp:15:23: error: 'hoursRequired' was not declared in this scope
   15 |         if(i!=c) d[i]=hoursRequired(c, i);
      |                       ^~~~~~~~~~~~~
fun.cpp:20:16: error: 'hoursRequired' was not declared in this scope
   20 |             if(hoursRequired(i, l[1])<d[i]) k[i]=1;
      |                ^~~~~~~~~~~~~
fun.cpp:26:10: error: invalid types 'long long int[long long int]' for array subscript
   26 |         q[k[i]].push(mp(d[i], i));
      |          ^
fun.cpp:30:22: error: invalid types 'long long int[int]' for array subscript
   30 |     while(2*max(max(q[1].size(), q[2].size()), q[3].size())<q[1].size()+q[2].size()+q[3].size()) {
      |                      ^
fun.cpp:30:35: error: invalid types 'long long int[int]' for array subscript
   30 |     while(2*max(max(q[1].size(), q[2].size()), q[3].size())<q[1].size()+q[2].size()+q[3].size()) {
      |                                   ^
fun.cpp:30:49: error: invalid types 'long long int[int]' for array subscript
   30 |     while(2*max(max(q[1].size(), q[2].size()), q[3].size())<q[1].size()+q[2].size()+q[3].size()) {
      |                                                 ^
fun.cpp:30:62: error: invalid types 'long long int[int]' for array subscript
   30 |     while(2*max(max(q[1].size(), q[2].size()), q[3].size())<q[1].size()+q[2].size()+q[3].size()) {
      |                                                              ^
fun.cpp:30:74: error: invalid types 'long long int[int]' for array subscript
   30 |     while(2*max(max(q[1].size(), q[2].size()), q[3].size())<q[1].size()+q[2].size()+q[3].size()) {
      |                                                                          ^
fun.cpp:30:86: error: invalid types 'long long int[int]' for array subscript
   30 |     while(2*max(max(q[1].size(), q[2].size()), q[3].size())<q[1].size()+q[2].size()+q[3].size()) {
      |                                                                                      ^
fun.cpp:34:23: error: invalid types 'long long int[int]' for array subscript
   34 |                 if(m<q[i].front().first) {
      |                       ^
fun.cpp:35:24: error: invalid types 'long long int[int]' for array subscript
   35 |                     m=q[i].front().first;
      |                        ^
fun.cpp:41:17: error: invalid types 'long long int[long long int]' for array subscript
   41 |         p[ctr]=q[x].front().second;
      |                 ^
fun.cpp:43:10: error: invalid types 'long long int[long long int]' for array subscript
   43 |         q[x].pop();
      |          ^
fun.cpp:46:13: error: invalid types 'long long int[int]' for array subscript
   46 |         if(q[i].size()==max(max(q[1].size(), q[2].size()), q[3].size())) M=i;
      |             ^
fun.cpp:46:34: error: invalid types 'long long int[int]' for array subscript
   46 |         if(q[i].size()==max(max(q[1].size(), q[2].size()), q[3].size())) M=i;
      |                                  ^
fun.cpp:46:47: error: invalid types 'long long int[int]' for array subscript
   46 |         if(q[i].size()==max(max(q[1].size(), q[2].size()), q[3].size())) M=i;
      |                                               ^
fun.cpp:46:61: error: invalid types 'long long int[int]' for array subscript
   46 |         if(q[i].size()==max(max(q[1].size(), q[2].size()), q[3].size())) M=i;
      |                                                             ^
fun.cpp:49:19: error: invalid types 'long long int[int]' for array subscript
   49 |         if(x!=i&&q[i].size()!=max(max(q[1].size(), q[2].size()), q[3].size())&&q[i].front().first==max(max(q[1].front().first, q[2].front().first), q[3].front().first)) {
      |                   ^
fun.cpp:49:40: error: invalid types 'long long int[int]' for array subscript
   49 |         if(x!=i&&q[i].size()!=max(max(q[1].size(), q[2].size()), q[3].size())&&q[i].front().first==max(max(q[1].front().first, q[2].front().first), q[3].front().first)) {
      |                                        ^
fun.cpp:49:53: error: invalid types 'long long int[int]' for array subscript
   49 |         if(x!=i&&q[i].size()!=max(max(q[1].size(), q[2].size()), q[3].size())&&q[i].front().first==max(max(q[1].front().first, q[2].front().first), q[3].front().first)) {
      |                                                     ^
fun.cpp:49:67: error: invalid types 'long long int[int]' for array subscript
   49 |         if(x!=i&&q[i].size()!=max(max(q[1].size(), q[2].size()), q[3].size())&&q[i].front().first==max(max(q[1].front().first, q[2].front().first), q[3].front().first)) {
      |                                                                   ^
fun.cpp:49:81: error: invalid types 'long long int[int]' for array subscript
   49 |         if(x!=i&&q[i].size()!=max(max(q[1].size(), q[2].size()), q[3].size())&&q[i].front().first==max(max(q[1].front().first, q[2].front().first), q[3].front().first)) {
      |                                                                                 ^
fun.cpp:49:109: error: invalid types 'long long int[int]' for array subscript
   49 |         if(x!=i&&q[i].size()!=max(max(q[1].size(), q[2].size()), q[3].size())&&q[i].front().first==max(max(q[1].front().first, q[2].front().first), q[3].front().first)) {
      |                                                                                                             ^
fun.cpp:49:129: error: invalid types 'long long int[int]' for array subscript
   49 |         if(x!=i&&q[i].size()!=max(max(q[1].size(), q[2].size()), q[3].size())&&q[i].front().first==max(max(q[1].front().first, q[2].front().first), q[3].front().first)) {
      |                                                                                                                                 ^
fun.cpp:49:150: error: invalid types 'long long int[int]' for array subscript
   49 |         if(x!=i&&q[i].size()!=max(max(q[1].size(), q[2].size()), q[3].size())&&q[i].front().first==max(max(q[1].front().first, q[2].front().first), q[3].front().first)) {
      |                                                                                                                                                      ^
fun.cpp:50:21: error: invalid types 'long long int[int]' for array subscript
   50 |             p[ctr]=q[i].front().second;
      |                     ^
fun.cpp:52:14: error: invalid types 'long long int[int]' for array subscript
   52 |             q[i].pop();
      |              ^
fun.cpp:57:17: error: invalid types 'long long int[long long int]' for array subscript
   57 |         p[ctr]=q[M].front().second;
      |                 ^
fun.cpp:59:10: error: invalid types 'long long int[long long int]' for array subscript
   59 |         q[M].pop();
      |          ^
fun.cpp:62:22: error: invalid types 'long long int[int]' for array subscript
   62 |     while(2*max(max(q[1].size(), q[2].size()), q[3].size())>0) {
      |                      ^
fun.cpp:62:35: error: invalid types 'long long int[int]' for array subscript
   62 |     while(2*max(max(q[1].size(), q[2].size()), q[3].size())>0) {
      |                                   ^
fun.cpp:62:49: error: invalid types 'long long int[int]' for array subscript
   62 |     while(2*max(max(q[1].size(), q[2].size()), q[3].size())>0) {
      |                                                 ^
fun.cpp:67:27: error: invalid types 'long long int[int]' for array subscript
   67 |                     if(m<q[i].front().first) {
      |                           ^
fun.cpp:68:28: error: invalid types 'long long int[int]' for array subscript
   68 |                         m=q[i].front().first;
      |                            ^
fun.cpp:74:17: error: invalid types 'long long int[long long int]' for array subscript
   74 |         p[ctr]=q[x].front().second;
      |                 ^
fun.cpp:76:10: error: invalid types 'long long int[long long int]' for array subscript
   76 |         q[x].pop();
      |          ^