Submission #832277

# Submission time Handle Problem Language Result Execution time Memory
832277 2023-08-21T08:23:55 Z TS_2392 Sailing Race (CEOI12_race) C++14
0 / 100
1027 ms 5580 KB
#include <bits/stdc++.h>
using namespace std;

#define fileIO(name) if(fopen(name".inp", "r")) {freopen(name".inp", "r", stdin); freopen(name".out", "w", stdout);}
#define SPEED {ios_base :: sync_with_stdio(0); cin.tie(0); cout.tie(0);}
template<class T1, class T2> bool minimize(T1 &a, T2 b){return a > b ? a = b, true : false;}
template<class T1, class T2> bool maximize(T1 &a, T2 b){return a < b ? a = b, true : false;}

const int N = 503;
int n, type, res, nxt[N], prv[N];
int adj[N][N], dp1[N][N][2], dp2[N][N][2];
int main(){
    SPEED; fileIO("text");
    cin >> n >> type;
    for(int u = 1, v; u <= n; ++u){
        while(cin >> v){
            if(v == 0) break;
            else adj[u][v] = 1;
        }
        nxt[u] = u + 1; prv[u] = u - 1;
    }
    nxt[n] = 1; prv[1] = n;
    for(int len = 2; len < n; ++len){
        for(int i = 1; i <= n; ++i){
            int j = i + len - 1;
            if(j > n) j -= n;

            if(adj[i][j]) dp1[i][j][0] = 1;
            for(int k = nxt[i]; k != j; k = nxt[k]) if(adj[k][j] && dp1[i][k][0]){
                maximize(dp1[i][j][0], dp1[i][k][0] + 1);
            }

            if(adj[j][i]) dp1[i][j][1] = 1;
            for(int k = prv[j]; k != i; k = prv[k]) if(adj[k][i] && dp1[k][j][1]){
                maximize(dp1[i][j][1], dp1[k][j][1] + 1);
            }

        }
    }
    for(int len = 2; len < n; ++len){
        for(int i = 1; i <= n; ++i){
            int j = i + len - 1;
            if(j > n) j -= n;

            dp2[i][j][0] = dp2[i][prv[j]][0];
            if(adj[i][j]) maximize(dp2[i][j][0], dp2[nxt[i]][j][1] + 1);
            for(int k = nxt[i]; k != j; k = nxt[k]) if(adj[k][j] && dp1[i][k][0]){
                maximize(dp2[i][j][0], dp1[i][k][0] + 1 + dp2[nxt[k]][j][1]);
            }

            dp2[i][j][1] = dp2[nxt[i]][j][1];
            if(adj[j][i]) maximize(dp2[i][j][1], dp2[i][prv[j]][0] + 1);
            for(int k = prv[j]; k != i; k = prv[k]) if(adj[k][i] && dp1[k][j][1]){
                maximize(dp2[i][j][1], dp1[k][j][1] + 1 + dp2[i][prv[k]][0]);
            }

            maximize(res, dp2[i][j][0]);
            maximize(res, dp2[i][j][1]);
        }
    }
    cout << res;
    return 0;
}

Compilation message

race.cpp: In function 'int main()':
race.cpp:4:57: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
    4 | #define fileIO(name) if(fopen(name".inp", "r")) {freopen(name".inp", "r", stdin); freopen(name".out", "w", stdout);}
      |                                                  ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
race.cpp:13:12: note: in expansion of macro 'fileIO'
   13 |     SPEED; fileIO("text");
      |            ^~~~~~
race.cpp:4:90: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
    4 | #define fileIO(name) if(fopen(name".inp", "r")) {freopen(name".inp", "r", stdin); freopen(name".out", "w", stdout);}
      |                                                                                   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
race.cpp:13:12: note: in expansion of macro 'fileIO'
   13 |     SPEED; fileIO("text");
      |            ^~~~~~
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 476 KB Unexpected end of file - int32 expected
2 Incorrect 1 ms 460 KB Output isn't correct
3 Incorrect 1 ms 596 KB Output isn't correct
4 Incorrect 1 ms 724 KB Output isn't correct
5 Incorrect 2 ms 724 KB Unexpected end of file - int32 expected
6 Incorrect 3 ms 852 KB Output isn't correct
7 Incorrect 5 ms 980 KB Output isn't correct
8 Incorrect 4 ms 1104 KB Output isn't correct
9 Incorrect 10 ms 1240 KB Output isn't correct
10 Incorrect 6 ms 1236 KB Output isn't correct
11 Incorrect 14 ms 1236 KB Output isn't correct
12 Incorrect 68 ms 2316 KB Output isn't correct
13 Incorrect 164 ms 3304 KB Output isn't correct
14 Incorrect 360 ms 4344 KB Unexpected end of file - int32 expected
15 Incorrect 881 ms 5304 KB Output isn't correct
16 Incorrect 930 ms 5388 KB Output isn't correct
17 Incorrect 855 ms 5580 KB Output isn't correct
18 Incorrect 643 ms 5292 KB Unexpected end of file - int32 expected
19 Incorrect 1027 ms 5496 KB Output isn't correct
20 Incorrect 1016 ms 5376 KB Output isn't correct