Submission #1313088

#TimeUsernameProblemLanguageResultExecution timeMemory
1313088altern23City Mapping (NOI18_citymapping)C++20
0 / 100
2093 ms14648 KiB
#include "citymapping.h"
#include <bits/stdc++.h>
using namespace std;

#define ll long long

void find_roads(int N, int Q, int A[], int B[], int W[]) {
      ll ptr = 0;
      ll mt[N + 5][N + 5];
      memset(mt, 0x3f, sizeof(mt));
      
      vector <pair<ll, pair<ll, ll>>> v;

      for (int i = 1; i <= N; i++) {
            for (int j = 1; j < i; j++) {
                  mt[i][j] = mt[j][i] = get_distance(i, j);
                  v.push_back({mt[i][j], {i, j}});
            }
            sort(v.begin(), v.end());
      }

      sort(v.begin(), v.end());
      vector <ll> adj[N + 5];
      for (auto [dist, node] : v) {
            auto [i, j] = node;
            if (adj[i].size() == 3 || adj[j].size() == 3) continue;
            bool ok = 1;
            for (auto x : adj[i]) {
                  ok &= (mt[i][x] + mt[x][j] != dist);
            }
            if (ok) {
                  A[ptr] = i, B[ptr] = j, W[ptr] = dist;
                  ptr++;
                  adj[i].push_back(j);
                  adj[j].push_back(i);
            }
      }
}
#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...