Submission #966158

#TimeUsernameProblemLanguageResultExecution timeMemory
966158BoasSoccer Stadium (IOI23_soccer)C++17
Compilation error
0 ms0 KiB
#include "soccer.h" using namespace std; #include <bits/stdc++.h> typedef vector<int> vi; typedef vector<vi> vvi; typedef pair<int, int> ii; typedef vector<ii> vii; typedef vector<vii> vvii; // rectangle lol struct Square { int x1, y1, x2, y2; }; typedef vector<Square> vSq; #define loop(x, i) for (int i = 0; i < x; i++) int n; vvi f; inline bool getF(int x, int y) { if (x >= n || y >= n || x < 0 || y < 0) return 1; return f[x][y] == 1; } int extendSquare(Square sq) { vi extensUp(n), extensDown(n), extensRight(n), extensLeft(n); int bestVert = 0, bestHorz = 0; for (int x = sq.x1; x <= sq.x2; x++) { int up = 0; int down = 0; while (getF(x, sq.y1 + up + 1) == 0) { up++; } while (getF(x, sq.y2 - down - 1) == 0) { down++; } extensUp[x] = up; extensUp[x] = down; } // i = hoogtepunt for (int i = sq.x1; i <= sq.x2; i++) { if (getF[i][sq.y1] == 1) continue; } return (sq.x2 - sq.x1 + 1) * (sq.y2 - sq.y1 + 1); } int biggest_stadium(int N, vvi F) { n = N; f = F; /* vvii freeSpaces(N, {0, 0}); loop(N, x) { loop(N, y) { if (F[x][y] == 0) { freeSpaces[x].back().second++; } else { freeSpaces[x].push_back({y, 0}); } } }*/ int best = 1; loop(N, x1) { loop(N, y1) { if (F[x1][y1]) continue; int maxX = x1; while (getF(maxX + 1, y1) == 0) { maxX++; } for (int dx = maxX; dx >= 0; dx--) { int h = 1; while (true) { bool posi = true; // check if this height is possible int i = 0; for (; i <= dx; i++) { if (getF(x1 + i, y1 + h)) { posi = false; break; } } if (!posi) break; h++; } h--; int s = extendSquare({x1, y1, x1 + dx, y1 + h}); if (s > best) { best = s; } } } } return best; }

Compilation message (stderr)

soccer.cpp: In function 'int extendSquare(Square)':
soccer.cpp:53:19: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   53 |         if (getF[i][sq.y1] == 1)
      |                   ^
soccer.cpp:53:26: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   53 |         if (getF[i][sq.y1] == 1)
      |                          ^
soccer.cpp:53:28: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
   53 |         if (getF[i][sq.y1] == 1)
      |             ~~~~~~~~~~~~~~~^~~~
soccer.cpp:34:9: warning: unused variable 'bestVert' [-Wunused-variable]
   34 |     int bestVert = 0, bestHorz = 0;
      |         ^~~~~~~~
soccer.cpp:34:23: warning: unused variable 'bestHorz' [-Wunused-variable]
   34 |     int bestVert = 0, bestHorz = 0;
      |                       ^~~~~~~~