38 lines
948 B
C++
38 lines
948 B
C++
#include "testlib.h"
|
|
|
|
using namespace std;
|
|
using ll = long long;
|
|
|
|
const int MX = 1e9;
|
|
|
|
int main(int argc, char *argv[]) {
|
|
registerValidation(argc, argv);
|
|
|
|
ll n = inf.readLong(1LL, MX, "N");
|
|
inf.readSpace();
|
|
ll m = inf.readLong(0, n * (n - 1), "M");
|
|
inf.readEoln();
|
|
|
|
set<pair<int, int> > edges;
|
|
for (ll i = 1; i <= m; i++) {
|
|
ll s, e;
|
|
double len;
|
|
s = inf.readLong(1LL, n);
|
|
inf.readSpace();
|
|
e = inf.readLong(1LL, n);
|
|
inf.readSpace();
|
|
len = inf.readDouble();
|
|
inf.readEoln();
|
|
|
|
ensuref(s != e, "s must not be equal to e: edge: %lld -> %lld", s, e);
|
|
ensuref(len >= 0,
|
|
"len must be greater than or equal to zero: %lld->%lld, %lf", s,
|
|
e, len);
|
|
|
|
ensuref(!edges.contains({s, e}),
|
|
"Edges must be unique: multiple edge %lld -> %lld", s, e);
|
|
|
|
edges.emplace(s, e);
|
|
}
|
|
inf.readEof();
|
|
} |