답안 #1059423

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1059423 2024-08-14T23:49:13 Z Trent 분수 공원 (IOI21_parks) C++17
5 / 100
120 ms 27324 KB
#include "parks.h"
#include "bits/stdc++.h"
using namespace std;
#define forR(i, x) for(int i = 0; i < (x); ++i)
#define REP(i, a, b) for(int i = (a); i < (b); ++i)
typedef long long ll;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef vector<bool> vb;
typedef set<int> si;
struct pii{int a, b;};
bool operator <(pii a, pii b) {return a.a < b.a || a.a == b.a && a.b < b.b;}
const int MD = 2e5 + 10;

bool conn(int n, vi& u, vi& v) {
    vvi adj(n);
    forR(i, u.size()) {
        adj[u[i]].push_back(v[i]);
        adj[v[i]].push_back(u[i]);
    }
    vb vis(n);
    vi dfs = {0};
    while(!dfs.empty()) {
        int cur = dfs.back(); dfs.pop_back();
        if(!vis[cur]) {
            vis[cur] = true;
            for(int i : adj[cur]) if(!vis[i]) {
                dfs.push_back(i);
            }
        }
    }
    forR(i, n) if(!vis[i]) return false;
    return true;
}
int construct_roads(std::vector<int> x, std::vector<int> y) {
    int n = x.size();
    map<pii, int> ci;
    forR(i, n) ci[{x[i], y[i]}] = i;
    vi u, v, a, b;
    for(auto [co, id] : ci) {
        if(ci.count({co.a, co.b + 2})) {
            u.push_back(id);
            v.push_back(ci[{co.a, co.b+2}]);
            a.push_back(co.a - 1);
            b.push_back(co.b + 1);
        }
    }
    for(int y = 2; y < MD; y += 2) {
        if(ci.count({4, y}) && ci.count({2, y})) {
            u.push_back(ci[{2, y}]);
            v.push_back(ci[{4, y}]);
            a.push_back(3);
            b.push_back(y + 1);
        }
    }
    if(conn(n, u, v)) {
        build(u, v, a, b);
        return 1;
    }
    return 0;
}

Compilation message

parks.cpp: In function 'bool operator<(pii, pii)':
parks.cpp:12:63: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   12 | bool operator <(pii a, pii b) {return a.a < b.a || a.a == b.a && a.b < b.b;}
      |                                                    ~~~~~~~~~~~^~~~~~~~~~~~
parks.cpp: In function 'bool conn(int, vi&, vi&)':
parks.cpp:4:37: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    4 | #define forR(i, x) for(int i = 0; i < (x); ++i)
      |                                     ^
parks.cpp:17:5: note: in expansion of macro 'forR'
   17 |     forR(i, u.size()) {
      |     ^~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 344 KB Output is correct
5 Correct 1 ms 432 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 73 ms 16136 KB Output is correct
10 Correct 9 ms 1904 KB Output is correct
11 Correct 41 ms 8864 KB Output is correct
12 Correct 11 ms 2772 KB Output is correct
13 Correct 25 ms 7372 KB Output is correct
14 Correct 1 ms 348 KB Output is correct
15 Correct 2 ms 604 KB Output is correct
16 Correct 73 ms 16096 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 344 KB Output is correct
5 Correct 1 ms 432 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 73 ms 16136 KB Output is correct
10 Correct 9 ms 1904 KB Output is correct
11 Correct 41 ms 8864 KB Output is correct
12 Correct 11 ms 2772 KB Output is correct
13 Correct 25 ms 7372 KB Output is correct
14 Correct 1 ms 348 KB Output is correct
15 Correct 2 ms 604 KB Output is correct
16 Correct 73 ms 16096 KB Output is correct
17 Incorrect 1 ms 344 KB Tree @(3, 3) appears more than once: for edges on positions 1 and 2
18 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 344 KB Output is correct
5 Correct 1 ms 432 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 73 ms 16136 KB Output is correct
10 Correct 9 ms 1904 KB Output is correct
11 Correct 41 ms 8864 KB Output is correct
12 Correct 11 ms 2772 KB Output is correct
13 Correct 25 ms 7372 KB Output is correct
14 Correct 1 ms 348 KB Output is correct
15 Correct 2 ms 604 KB Output is correct
16 Correct 73 ms 16096 KB Output is correct
17 Incorrect 1 ms 344 KB Tree @(3, 3) appears more than once: for edges on positions 1 and 2
18 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 344 KB Output is correct
5 Correct 1 ms 432 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 73 ms 16136 KB Output is correct
10 Correct 9 ms 1904 KB Output is correct
11 Correct 41 ms 8864 KB Output is correct
12 Correct 11 ms 2772 KB Output is correct
13 Correct 25 ms 7372 KB Output is correct
14 Correct 1 ms 348 KB Output is correct
15 Correct 2 ms 604 KB Output is correct
16 Correct 73 ms 16096 KB Output is correct
17 Incorrect 1 ms 348 KB Solution announced impossible, but it is possible.
18 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 344 KB Output is correct
5 Correct 1 ms 432 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 73 ms 16136 KB Output is correct
10 Correct 9 ms 1904 KB Output is correct
11 Correct 41 ms 8864 KB Output is correct
12 Correct 11 ms 2772 KB Output is correct
13 Correct 25 ms 7372 KB Output is correct
14 Correct 1 ms 348 KB Output is correct
15 Correct 2 ms 604 KB Output is correct
16 Correct 73 ms 16096 KB Output is correct
17 Incorrect 120 ms 27324 KB Solution announced impossible, but it is possible.
18 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 344 KB Output is correct
5 Correct 1 ms 432 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 73 ms 16136 KB Output is correct
10 Correct 9 ms 1904 KB Output is correct
11 Correct 41 ms 8864 KB Output is correct
12 Correct 11 ms 2772 KB Output is correct
13 Correct 25 ms 7372 KB Output is correct
14 Correct 1 ms 348 KB Output is correct
15 Correct 2 ms 604 KB Output is correct
16 Correct 73 ms 16096 KB Output is correct
17 Incorrect 1 ms 344 KB Tree @(3, 3) appears more than once: for edges on positions 1 and 2
18 Halted 0 ms 0 KB -