Start
This commit is contained in:
38
validator/validator.cpp
Normal file
38
validator/validator.cpp
Normal file
@@ -0,0 +1,38 @@
|
||||
#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();
|
||||
}
|
||||
Reference in New Issue
Block a user