Submission #1062598

#TimeUsernameProblemLanguageResultExecution timeMemory
1062598j_vdd16Fountain Parks (IOI21_parks)C++17
5 / 100
67 ms8616 KiB
#include "parks.h"

#include <algorithm>
#include <bitset>
#include <cstdint>
#include <cstring>
#include <iostream>
#include <limits.h>
#include <math.h>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <vector>

//#define int long long
#define loop(X, N) for(int X = 0; X < (N); X++)
#define all(V) V.begin(), V.end()
#define rall(V) V.rbegin(), V.rend()

using namespace std;

typedef vector<int> vi;
typedef vector<vi> vvi;
typedef pair<int, int> ii;
typedef vector<ii> vii;
typedef vector<vector<ii>> vvii;
typedef vector<bool> vb;
typedef vector<vector<bool>> vvb;

int construct_roads(std::vector<int> x, std::vector<int> y) {
    int n = x.size();
    vector<pair<ii, int>> benches(n);

    loop(i, n) {
        benches[i].first.first = y[i];
        benches[i].first.second = x[i];
        benches[i].second = i;
    }
    sort(all(benches));

    int diff = benches.back().first.first - benches[0].first.first;
    if (diff / 2 + 1 != n) 
        return 0;

    int m = n - 1;
    vi u(m), v(m), a(m), b(m);
    loop(i, n - 1) {
        u[i] = benches[i].second;
        v[i] = benches[i + 1].second;

        a[i] = 3;
        b[i] = benches[i].first.first + 1;
    }

    build(u, v, a, b);
    return 1;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...