# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
825792 | tomruk | Sky Walking (IOI19_walk) | C++17 | 4121 ms | 612444 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "walk.h"
#include <bits/stdc++.h>
#define N 100005
using namespace std;
map<int,vector<int>> adj[N];
map<int,long long> d[N];
long long min_distance(vector<int> p, vector<int> h, vector<int> l, vector<int> r, vector<int> y, int s, int g){
int n = p.size();
int m = l.size();
vector<pair<int,int>> v;
for(int i = 0;i<n;i++){
v.push_back({h[i],i});
adj[i][0].push_back(i);
}
for(int i = 0;i<m;i++){
v.push_back({y[i],~i});
}
sort(v.rbegin(),v.rend());
set<int> active;
for(auto u:v){
if(u.second < 0){
u.second = ~u.second;
auto it = active.lower_bound(l[u.second]);
while(1){
auto it2 = it;
it2++;
if(it2 == active.end() || *it2 > r[u.second])
break;
adj[*it][y[u.second]].push_back(*it2);
adj[*it2][y[u.second]].push_back(*it);
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |