#include <bits/stdc++.h>
using namespace std;
typedef pair<int, int> pii;
const int INF = 1e9;
vector<int> dijkstra(int n, vector<int>& capacity, int source, int target) {
vector<int> dist(n, INF); // Stores shortest distance
priority_queue<pii, vector<pii>, greater<pii>> pq; // Min-heap (cost, node)
dist[source] = 0;
pq.push({0, source});
while (!pq.empty()) {
auto [cost, node] = pq.top();
pq.pop();
if (node == target) break; // Early exit if target is reached
// Move to next/previous server (direct connection)
if (node > 0) {
int new_cost = cost + abs(capacity[node] - capacity[node - 1]);
if (new_cost < dist[node - 1]) {
dist[node - 1] = new_cost;
pq.push({new_cost, node - 1});
}
}
if (node < n - 1) {
int new_cost = cost + abs(capacity[node] - capacity[node + 1]);
if (new_cost < dist[node + 1]) {
dist[node + 1] = new_cost;
pq.push({new_cost, node + 1});
}
}
// Move to closest server (fixed cost = 1)
if (node > 0 && dist[node - 1] > cost + 1) {
dist[node - 1] = cost + 1;
pq.push({cost + 1, node - 1});
}
if (node < n - 1 && dist[node + 1] > cost + 1) {
dist[node + 1] = cost + 1;
pq.push({cost + 1, node + 1});
}
}
return dist;
}
int main() {
int n, m;
cin >> n >> m;
vector<int> capacity(n);
for (int i = 0; i < n; i++) cin >> capacity[i];
vector<int> fromServer(m), toServer(m);
for (int i = 0; i < m; i++) cin >> fromServer[i] >> toServer[i];
for (int i = 0; i < m; i++) {
cout<<"afsdfasfa";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IHBpaTsKY29uc3QgaW50IElORiA9IDFlOTsKCnZlY3RvcjxpbnQ+IGRpamtzdHJhKGludCBuLCB2ZWN0b3I8aW50PiYgY2FwYWNpdHksIGludCBzb3VyY2UsIGludCB0YXJnZXQpIHsKICAgIHZlY3RvcjxpbnQ+IGRpc3QobiwgSU5GKTsgIC8vIFN0b3JlcyBzaG9ydGVzdCBkaXN0YW5jZQogICAgcHJpb3JpdHlfcXVldWU8cGlpLCB2ZWN0b3I8cGlpPiwgZ3JlYXRlcjxwaWk+PiBwcTsgIC8vIE1pbi1oZWFwIChjb3N0LCBub2RlKQoKICAgIGRpc3Rbc291cmNlXSA9IDA7CiAgICBwcS5wdXNoKHswLCBzb3VyY2V9KTsKCiAgICB3aGlsZSAoIXBxLmVtcHR5KCkpIHsKICAgICAgICBhdXRvIFtjb3N0LCBub2RlXSA9IHBxLnRvcCgpOwogICAgICAgIHBxLnBvcCgpOwoKICAgICAgICBpZiAobm9kZSA9PSB0YXJnZXQpIGJyZWFrOyAgLy8gRWFybHkgZXhpdCBpZiB0YXJnZXQgaXMgcmVhY2hlZAoKICAgICAgICAvLyBNb3ZlIHRvIG5leHQvcHJldmlvdXMgc2VydmVyIChkaXJlY3QgY29ubmVjdGlvbikKICAgICAgICBpZiAobm9kZSA+IDApIHsKICAgICAgICAgICAgaW50IG5ld19jb3N0ID0gY29zdCArIGFicyhjYXBhY2l0eVtub2RlXSAtIGNhcGFjaXR5W25vZGUgLSAxXSk7CiAgICAgICAgICAgIGlmIChuZXdfY29zdCA8IGRpc3Rbbm9kZSAtIDFdKSB7CiAgICAgICAgICAgICAgICBkaXN0W25vZGUgLSAxXSA9IG5ld19jb3N0OwogICAgICAgICAgICAgICAgcHEucHVzaCh7bmV3X2Nvc3QsIG5vZGUgLSAxfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKG5vZGUgPCBuIC0gMSkgewogICAgICAgICAgICBpbnQgbmV3X2Nvc3QgPSBjb3N0ICsgYWJzKGNhcGFjaXR5W25vZGVdIC0gY2FwYWNpdHlbbm9kZSArIDFdKTsKICAgICAgICAgICAgaWYgKG5ld19jb3N0IDwgZGlzdFtub2RlICsgMV0pIHsKICAgICAgICAgICAgICAgIGRpc3Rbbm9kZSArIDFdID0gbmV3X2Nvc3Q7CiAgICAgICAgICAgICAgICBwcS5wdXNoKHtuZXdfY29zdCwgbm9kZSArIDF9KTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gTW92ZSB0byBjbG9zZXN0IHNlcnZlciAoZml4ZWQgY29zdCA9IDEpCiAgICAgICAgaWYgKG5vZGUgPiAwICYmIGRpc3Rbbm9kZSAtIDFdID4gY29zdCArIDEpIHsKICAgICAgICAgICAgZGlzdFtub2RlIC0gMV0gPSBjb3N0ICsgMTsKICAgICAgICAgICAgcHEucHVzaCh7Y29zdCArIDEsIG5vZGUgLSAxfSk7CiAgICAgICAgfQogICAgICAgIGlmIChub2RlIDwgbiAtIDEgJiYgZGlzdFtub2RlICsgMV0gPiBjb3N0ICsgMSkgewogICAgICAgICAgICBkaXN0W25vZGUgKyAxXSA9IGNvc3QgKyAxOwogICAgICAgICAgICBwcS5wdXNoKHtjb3N0ICsgMSwgbm9kZSArIDF9KTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gZGlzdDsKfQoKaW50IG1haW4oKSB7CiAgICBpbnQgbiwgbTsKICAgIGNpbiA+PiBuID4+IG07CiAgICB2ZWN0b3I8aW50PiBjYXBhY2l0eShuKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSBjaW4gPj4gY2FwYWNpdHlbaV07CgogICAgdmVjdG9yPGludD4gZnJvbVNlcnZlcihtKSwgdG9TZXJ2ZXIobSk7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG07IGkrKykgY2luID4+IGZyb21TZXJ2ZXJbaV0gPj4gdG9TZXJ2ZXJbaV07CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtOyBpKyspIHsKICAgIAljb3V0PDwiYWZzZGZhc2ZhIjsKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=