Submission #435539

#TimeUsernameProblemLanguageResultExecution timeMemory
435539OzyFountain Parks (IOI21_parks)C++17
15 / 100
1578 ms84124 KiB
#include "parks.h" #include <bits/stdc++.h> using namespace std; #define rep(i,a,b) for (int i = (a); i <= (b); i++) #define repa(i,a,b) for (int i = (a); i >= (b); i--) #define lli long long int #define debug(a) cout << #a << " = " << a << endl #define debugsl(a) cout << #a << " = " << a << ", " #define MAX 200000 #define fil first #define col second int n,num; vector<int> u,v,a,b; set<pair<int,int> > existe; map<pair<int,int>,int> id; map<int,pair<int,int> > val; vector< int > hijos[MAX+2]; int visitados[MAX+2],ori[8] {2,0,-2,0,0,2,0,-2}; void DFS(int pos) { visitados[pos] = 1; num++; existe.erase(val[pos]); for (auto h : hijos[pos]) { pair<int,int> p = val[pos]; pair<int,int> q = val[h]; if (existe.find(q) == existe.end()) continue; if (p.fil == q.fil){ u.push_back(pos); v.push_back(h); a.push_back(min(p.col,q.col)+1); //columna b.push_back(p.fil-1); } else { u.push_back(pos); v.push_back(h); b.push_back(min(p.fil, q.fil)+1); if (p.col == 2) a.push_back(1); else a.push_back(5); } } for (auto h : hijos[pos]) if (visitados[h] == 0) DFS(h); } int construct_roads(std::vector<int> x, std::vector<int> y) { if (x.size() == 1) { build({}, {}, {}, {}); return 1; } n = x.size(); rep(i,0,n) { existe.insert({y[i], x[i]}); id[{y[i], x[i]}] = i; val[i] = {y[i], x[i]}; rep(j,0,3) { if (existe.find({y[i]+ori[j], x[i]+ori[j+4]}) != existe.end()) { hijos[i].push_back(id[{y[i]+ori[j], x[i]+ori[j+4]}]); hijos[id[{y[i]+ori[j], x[i]+ori[j+4]}]].push_back(i); } } } DFS(0); if (num < n) return 0; 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...