Submission #1079706

# Submission time Handle Problem Language Result Execution time Memory
1079706 2024-08-28T21:51:44 Z Lobo Soccer Stadium (IOI23_soccer) C++17
0 / 100
1 ms 348 KB
#include "soccer.h"
#include<bits/stdc++.h>
using namespace std;
const long long inf = 1e18 + 10;
const int inf1 = 1e9 + 10;
#define int long long
#define dbl long double
#define endl '\n'
#define sc second
#define fr first
#define mp make_pair
#define pb push_back
#define all(x) x.begin(), x.end()
mt19937_64 rng(chrono::system_clock::now().time_since_epoch().count());
const int maxn = -1;

int32_t biggest_stadium(int32_t n, std::vector<std::vector<int32_t>> F)
{

    int ans = 1;
    

    {
        vector<int> mnl(n),mxl(n),qtdl(n);
        for(int i = 0; i < n; i++) {
            mnl[i] = inf;
            mxl[i] = -inf;
            qtdl[i] = 0;
            for(int j = 0; j < n; j++) {
                if(F[i][j] == 0) {
                    qtdl[i]++;
                    mnl[i] = min(mnl[i],j);
                    mxl[i] = max(mxl[i],j);
                }
            }
        }
        int difmn = 1;
        int difmx = 1;
        // +1 -> increasing
        //  0 -> equal
        // -1 -> decreasing
        for(int i = 0; i < n; i++) {
            if(qtdl[i] != 0 and qtdl[i] != mxl[i]-mnl[i]+1) {
                ans = 0;
            }

            int difmn1 = 0;
            int difmx1 = 0;
            if(i != 0) {
                if(mnl[i] < mnl[i-1]) difmn1 = 1; // increasing
                if(mnl[i] > mnl[i-1]) difmn1 = -1; // decreasing

                if(mxl[i] > mxl[i-1]) difmx1 = 1; // increasing
                if(mxl[i] < mxl[i-1]) difmx1 = -1; // decreasing
            }

            if(difmn == -1 and difmn1 == 1) {
                ans = 0;
            }

            if(difmx = -1 and difmx1 == 1) {
                ans = 0;
            }

            if(difmn1 == -1 and (difmx1 == 1 or difmx == 1)) {
                ans = 0;
            }

            if(difmx1 == -1 and (difmn1 == 1 or difmn == 1)) {
                ans = 0;
            }

            if(difmn1 != 0) difmn = 0;
            if(difmx1 != 0) difmx = 0;

        }
    }

    for(int i = 0; i < n ; i++) {
        for(int j = 0; j < n; j++) {
            if(i < j) swap(F[i][j],F[j][i]);
        }
    }

    {
        vector<int> mnl(n),mxl(n),qtdl(n);
        for(int i = 0; i < n; i++) {
            mnl[i] = inf;
            mxl[i] = -inf;
            qtdl[i] = 0;
            for(int j = 0; j < n; j++) {
                if(F[i][j] == 0) {
                    qtdl[i]++;
                    mnl[i] = min(mnl[i],j);
                    mxl[i] = max(mxl[i],j);
                }
            }
        }
        int difmn = 1;
        int difmx = 1;
        // +1 -> increasing
        //  0 -> equal
        // -1 -> decreasing
        for(int i = 0; i < n; i++) {
            if(qtdl[i] != 0 and qtdl[i] != mxl[i]-mnl[i]+1) {
                ans = 0;
            }

            int difmn1 = 0;
            int difmx1 = 0;
            if(i != 0) {
                if(mnl[i] < mnl[i-1]) difmn1 = 1; // increasing
                if(mnl[i] > mnl[i-1]) difmn1 = -1; // decreasing

                if(mxl[i] > mxl[i-1]) difmx1 = 1; // increasing
                if(mxl[i] < mxl[i-1]) difmx1 = -1; // decreasing
            }

            if(difmn == -1 and difmn1 == 1) {
                ans = 0;
            }

            if(difmx = -1 and difmx1 == 1) {
                ans = 0;
            }

            if(difmn1 == -1 and (difmx1 == 1 or difmx == 1)) {
                ans = 0;
            }

            if(difmx1 == -1 and (difmn1 == 1 or difmn == 1)) {
                ans = 0;
            }

            if(difmn1 != 0) difmn = 0;
            if(difmx1 != 0) difmx = 0;

        }
    }

    return ans;
}

Compilation message

soccer.cpp: In function 'int32_t biggest_stadium(int32_t, std::vector<std::vector<int> >)':
soccer.cpp:61:22: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
   61 |             if(difmx = -1 and difmx1 == 1) {
      |                ~~~~~~^~~~~~~~~~~~~~~~~~~~
soccer.cpp:123:22: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
  123 |             if(difmx = -1 and difmx1 == 1) {
      |                ~~~~~~^~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Partially correct 1 ms 344 KB partial
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 348 KB wrong
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 348 KB wrong
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 1 ms 344 KB partial
2 Incorrect 0 ms 348 KB wrong
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 1 ms 344 KB partial
2 Incorrect 0 ms 348 KB wrong
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 1 ms 344 KB partial
2 Incorrect 0 ms 348 KB wrong
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 1 ms 344 KB partial
2 Incorrect 0 ms 348 KB wrong
3 Halted 0 ms 0 KB -