Submission #147522

# Submission time Handle Problem Language Result Execution time Memory
147522 2019-08-30T00:18:01 Z 2qbingxuan Rectangles (IOI19_rect) C++14
18 / 100
5000 ms 22840 KB
//   __________________
//  | ________________ |
//  ||          ____  ||
//  ||   /\    |      ||
//  ||  /__\   |      ||
//  || /    \  |____  ||
//  ||________________||
//  |__________________|
//  \\#################\\
//   \\#################\\
//    \        ____       \
//     \_______\___\_______\
// An AC a day keeps the doctor away.

#pragma GCC optimize("Ofast")
#pragma loop_opt(on)
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define debug(x) (cerr<<#x<<" = "<<(x)<<'\n')
#define all(v) begin(v),end(v)
#define siz(v) (ll(v.size()))
#define get_pos(v,x) (lower_bound(all(v),x)-begin(v))
#define pb emplace_back
#define ff first
#define ss second
#define mid (l+(r-l>>1))

using namespace std;
using namespace __gnu_pbds;
typedef int64_t ll;
typedef uint64_t ull;
typedef long double ld;
typedef pair<ll,ll> pll;
template <typename T> using rkt = tree<T,null_type,less<T>,rb_tree_tag,tree_order_statistics_node_update>;
constexpr ld PI = acos(-1), eps = 1e-8;
constexpr ll N = 2525, INF = 1e18, MOD = 998244353, K = 102425;
constexpr inline ll cdiv(ll x, ll m) { return (x+m-1)/m; } // ceiling divide, x/m for flooring divide
template <typename T> void M(T &x, ll m = MOD){x%=m; if(x<0) x+=m;}

ll count_rectangles(std::vector<std::vector<int> > v) {
    int n = v.size(), m = v[0].size();
    ll res = 0;
    for(int l = 1; l < n-1; l++) {
        for(int r = l; r < n-1; r++) {
            for(int a = 1; a < m-1; a++) {
                for(int b = a; b < m-1; b++) {
                    bool valid = true;
                    for(int i = l; i <= r; i++) for(int j = a; j <= b; j++) {
                        if(v[i][j] >= v[l-1][j]) valid = false;
                        if(v[i][j] >= v[r+1][j]) valid = false;
                        if(v[i][j] >= v[i][a-1]) valid = false;
                        if(v[i][j] >= v[i][b+1]) valid = false;
                    }
                    if(valid) res++;
                }
            }
        }
    }
    return res;
}

Compilation message

rect.cpp:9:1: warning: multi-line comment [-Wcomment]
 //  \\#################\\
 ^
rect.cpp:16:0: warning: ignoring #pragma loop_opt  [-Wunknown-pragmas]
 #pragma loop_opt(on)
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 33 ms 376 KB Output is correct
3 Correct 33 ms 256 KB Output is correct
4 Correct 33 ms 256 KB Output is correct
5 Correct 33 ms 376 KB Output is correct
6 Correct 33 ms 256 KB Output is correct
7 Correct 5 ms 376 KB Output is correct
8 Correct 4 ms 256 KB Output is correct
9 Correct 34 ms 256 KB Output is correct
10 Correct 33 ms 376 KB Output is correct
11 Correct 33 ms 376 KB Output is correct
12 Correct 33 ms 256 KB Output is correct
13 Correct 2 ms 376 KB Output is correct
14 Correct 2 ms 376 KB Output is correct
15 Correct 2 ms 376 KB Output is correct
16 Correct 2 ms 376 KB Output is correct
17 Correct 2 ms 256 KB Output is correct
18 Correct 2 ms 380 KB Output is correct
19 Correct 33 ms 504 KB Output is correct
20 Correct 6 ms 376 KB Output is correct
21 Correct 2 ms 256 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 33 ms 376 KB Output is correct
3 Correct 33 ms 256 KB Output is correct
4 Correct 33 ms 256 KB Output is correct
5 Correct 33 ms 376 KB Output is correct
6 Correct 33 ms 256 KB Output is correct
7 Correct 5 ms 376 KB Output is correct
8 Correct 4 ms 256 KB Output is correct
9 Correct 34 ms 256 KB Output is correct
10 Correct 33 ms 376 KB Output is correct
11 Correct 33 ms 376 KB Output is correct
12 Correct 33 ms 256 KB Output is correct
13 Correct 2 ms 376 KB Output is correct
14 Correct 2 ms 376 KB Output is correct
15 Correct 2 ms 376 KB Output is correct
16 Correct 2 ms 376 KB Output is correct
17 Execution timed out 5086 ms 376 KB Time limit exceeded
18 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 33 ms 376 KB Output is correct
3 Correct 33 ms 256 KB Output is correct
4 Correct 33 ms 256 KB Output is correct
5 Correct 33 ms 376 KB Output is correct
6 Correct 33 ms 256 KB Output is correct
7 Correct 5 ms 376 KB Output is correct
8 Correct 4 ms 256 KB Output is correct
9 Correct 34 ms 256 KB Output is correct
10 Correct 33 ms 376 KB Output is correct
11 Correct 33 ms 376 KB Output is correct
12 Correct 33 ms 256 KB Output is correct
13 Correct 2 ms 376 KB Output is correct
14 Correct 2 ms 376 KB Output is correct
15 Correct 2 ms 376 KB Output is correct
16 Correct 2 ms 376 KB Output is correct
17 Execution timed out 5086 ms 376 KB Time limit exceeded
18 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 33 ms 376 KB Output is correct
3 Correct 33 ms 256 KB Output is correct
4 Correct 33 ms 256 KB Output is correct
5 Correct 33 ms 376 KB Output is correct
6 Correct 33 ms 256 KB Output is correct
7 Correct 5 ms 376 KB Output is correct
8 Correct 4 ms 256 KB Output is correct
9 Correct 34 ms 256 KB Output is correct
10 Correct 33 ms 376 KB Output is correct
11 Correct 33 ms 376 KB Output is correct
12 Correct 33 ms 256 KB Output is correct
13 Correct 2 ms 376 KB Output is correct
14 Correct 2 ms 376 KB Output is correct
15 Correct 2 ms 376 KB Output is correct
16 Correct 2 ms 376 KB Output is correct
17 Execution timed out 5086 ms 376 KB Time limit exceeded
18 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 4599 ms 432 KB Output is correct
2 Correct 2830 ms 376 KB Output is correct
3 Correct 4607 ms 428 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
5 Correct 4606 ms 428 KB Output is correct
6 Correct 4603 ms 376 KB Output is correct
7 Correct 4601 ms 420 KB Output is correct
8 Correct 4601 ms 428 KB Output is correct
9 Correct 4606 ms 504 KB Output is correct
10 Correct 2 ms 376 KB Output is correct
11 Correct 2 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Execution timed out 5009 ms 22840 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 33 ms 376 KB Output is correct
3 Correct 33 ms 256 KB Output is correct
4 Correct 33 ms 256 KB Output is correct
5 Correct 33 ms 376 KB Output is correct
6 Correct 33 ms 256 KB Output is correct
7 Correct 5 ms 376 KB Output is correct
8 Correct 4 ms 256 KB Output is correct
9 Correct 34 ms 256 KB Output is correct
10 Correct 33 ms 376 KB Output is correct
11 Correct 33 ms 376 KB Output is correct
12 Correct 33 ms 256 KB Output is correct
13 Correct 2 ms 376 KB Output is correct
14 Correct 2 ms 376 KB Output is correct
15 Correct 2 ms 376 KB Output is correct
16 Correct 2 ms 376 KB Output is correct
17 Execution timed out 5086 ms 376 KB Time limit exceeded
18 Halted 0 ms 0 KB -