QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#387901#6523. Escape PlanMayuriAC ✓520ms87368kbC++1417.7kb2024-04-12 23:41:562024-04-12 23:41:56

Judging History

你现在查看的是最新测评结果

  • [2024-04-12 23:41:56]
  • 评测
  • 测评结果:AC
  • 用时:520ms
  • 内存:87368kb
  • [2024-04-12 23:41:56]
  • 提交

answer

//#define _CRT_SECURE_NO_WARNINGS
////#include<bits/stdc++.h>
////using namespace std;
////typedef long long ll;
////typedef long double ld;
////#define endl '\n'
////const ll mod = 1e9 + 7;
////ll T;
////ll l, r;
////ll f(ll x) {
////	ll ans = 1;
////	while (x) {
////		ans = ans * (x % 10) % mod;
////		x /= 10;
////	}
////	return ans;
////}
////int main()
////{
////	ios::sync_with_stdio(0);
////	cin.tie(0);
////	cout.tie(0);
////	ll T; cin >> T;
////	while (T--) {
////		cin >> l >> r;
////		if (l / 10 != r / 10) {
////			cout << 0 << endl;
////			continue;
////		}
////		ll ans = 1;
////		for (ll i = l; i <= r; i++)ans = (ans * f(i)) % mod;
////		cout << ans << endl;
////	}
////}
// WA
//#include<bits/stdc++.h>
//using namespace std;
//typedef long long ll;
//typedef long double ld;
//#define endl '\n'
//const ll mod = 1e9 + 7;
//ll t;
//ll n, m;
//
//int main()//b
//{
//	ios::sync_with_stdio(0);
//	cin.tie(0);
//	cout.tie(0);
//	ll t; cin >> t;
//	while (t--) {
//		cin >> n >> m;
//		vector<vector<char>>f(n + 1, vector<char>(m + 1));
//		for (ll i = 1; i <= n; i++) {
//			for (ll j = 1; j <= m; j++) {
//				cin >> f[i][j];
//			}
//		}
//		vector<vector<ll>>a(n + 1, vector<ll>(m + 1));
//		for (ll i = 1; i <= n; i++) {
//			for (ll j = 1; j <= m; j++) {
//				cin >> a[i][j];
//			}
//		}
//		vector<vector<ll>> dp(n + 1, vector<ll>(m + 1, -1));
//		vector<vector<ll>>scc(n + 1, vector<ll>(m + 1, -1));
//		vector<ll> sz(n * m + 1);
//		ll cnt = 0;
//		function<void(ll, ll)> fdfs = [&](ll x, ll y) -> void {
//			if (x <= 0 || y <= 0 || x > n || y >m) {
//				sz[cnt] = 0;
//				return;
//			}
//			if (scc[x][y] != -1)return;
//			scc[x][y] = cnt;
//			sz[cnt]++;
//			ll dx = 0, dy = 0;
//			if (f[x][y] == 'l')dx = 0, dy = -1;
//			if (f[x][y] == 'u')dx = -1, dy = 0;
//			if (f[x][y] == 'r')dx = 0, dy = 1;
//			if (f[x][y] == 'd')dx = 1, dy = 0;
//			fdfs(x + dx * a[x][y], y + dy * a[x][y]);
//			};
//		function<ll(ll, ll)> dfs = [&](ll x, ll y) -> ll {
//			if (x < 0 || y < 0 || x > n || y >m)return 0;
//			ll& ans = dp[x][y];
//			if (sz[scc[x][y]] != 0) {
//				return ans = sz[scc[x][y]];
//			}
//			if (ans != -1)return ans;
//			ans = 0;
//			ll dx = 0, dy = 0;
//			if (f[x][y] == 'l')dx = 0, dy = -1;
//			if (f[x][y] == 'u')dx = -1, dy = 0;
//			if (f[x][y] == 'r')dx = 0, dy = 1;
//			if (f[x][y] == 'd')dx = 1, dy = 0;
//			ans = dfs(x + dx * a[x][y], y + dy * a[x][y]) + 1;
//			//cout << x << " " << y << " " << ans << endl;
//			return ans;
//		};
//		for (ll i = 1; i <= n; i++) {
//			for (ll j = 1; j <= m; j++) {
//				if (scc[i][j] == -1) {
//					cnt++;
//					fdfs(i, j);
//				}
//			}
//		}
//		ll ans = 0;
//		for (ll i = 1; i <= n; i++) {
//			for (ll j = 1; j <= m; j++) {
//				ans = max(ans, dfs(i, j));
//				//cout << dfs(i, j) << " ";
//			}//cout << endl;
//		}
//		if (ans == n * m) {
//			cout << "yes" << endl;
//		}
//		else cout << "no" << endl;
//	}
//}
// AC
//#include<bits/stdc++.h>
//using namespace std;
//typedef long long ll;
//typedef long double ld;
//#define endl '\n'
//const ll mod = 1e9 + 7;
//ll T;
//ll n, m;
//int main()//B
//{
//	ios::sync_with_stdio(0);
//	cin.tie(0);
//	cout.tie(0);
//	ll T; cin >> T;
//	while (T--) {
//		cin >> n >> m;
//		vector<vector<char>>f(n + 1, vector<char>(m + 1));
//		for (ll i = 1; i <= n; i++) {
//			for (ll j = 1; j <= m; j++) {
//				cin >> f[i][j];
//			}
//		}
//		vector<vector<ll>>a(n + 1, vector<ll>(m + 1));
//		for (ll i = 1; i <= n; i++) {
//			for (ll j = 1; j <= m; j++) {
//				cin >> a[i][j];
//			}
//		}
//		vector<vector<ll>>c(n + 1, vector<ll>(m + 1));
//		for (ll x = 1; x <= n; x++) {
//			for (ll y = 1; y <= m; y++) {
//				ll dx = 0, dy = 0;
//				if (f[x][y] == 'l')dx = 0, dy = -1;
//				if (f[x][y] == 'u')dx = -1, dy = 0;
//				if (f[x][y] == 'r')dx = 0, dy = 1;
//				if (f[x][y] == 'd')dx = 1, dy = 0;
//				ll tx = x + dx * a[x][y], ty = y + dy * a[x][y];
//				if (tx < 0 || ty < 0 || tx > n || ty >m)continue;
//				c[tx][ty]++;
//			}
//		}
//		ll bx = 1, by = 1;
//		for (ll x = 1; x <= n; x++) {
//			for (ll y = 1; y <= m; y++) {
//				if (c[x][y] == 0) {
//					bx = x;
//					by = y;
//				}
//			}
//		}
//		vector<vector<bool>> dp(n + 1, vector<bool>(m + 1));
//		function<void(ll, ll)> dfs = [&](ll x, ll y) -> void {
//			if (x <= 0 || y <= 0 || x > n || y >m)return;
//			if (dp[x][y])return;
//			dp[x][y] = true;
//			ll dx = 0, dy = 0;
//			if (f[x][y] == 'l')dx = 0, dy = -1;
//			if (f[x][y] == 'u')dx = -1, dy = 0;
//			if (f[x][y] == 'r')dx = 0, dy = 1;
//			if (f[x][y] == 'd')dx = 1, dy = 0;
//			dfs(x + dx * a[x][y], y + dy * a[x][y]);
//		};
//		bool flag = true;
//		dfs(bx, by);
//		for (ll i = 1; i <= n; i++) {
//			for (ll j = 1; j <= m; j++) {
//				//cout << dp[i][j] << " ";
//				if (!dp[i][j])flag = false;
//			}//cout << endl;
//		}
//		if (flag) {
//			cout << "Yes" << endl;
//		}
//		else cout << "No" << endl;
//	}
//}
//#include<bits/stdc++.h>
//using namespace std;
//typedef long long ll;
//typedef long double ld;
//#define endl '\n'
//const ll mod = 1e9 + 7;
//ll T;
//ll n, m;
//int main()
//{
//	ios::sync_with_stdio(0);
//	cin.tie(0);
//	cout.tie(0);
//	ll T; cin >> T;
//	while (T--) {
//		cin >> n >> m;
//		vector<vector<char>>f(n + 1, vector<char>(m + 1));
//		for (ll i = 1; i <= n; i++) {
//			for (ll j = 1; j <= m; j++) {
//				cin >> f[i][j];
//			}
//		}
//		vector<vector<ll>>a(n + 1, vector<ll>(m + 1));
//		for (ll i = 1; i <= n; i++) {
//			for (ll j = 1; j <= m; j++) {
//				cin >> a[i][j];
//			}
//		}
//		vector<vector<ll>>c(n + 1, vector<ll>(m + 1));
//		for (ll x = 1; x <= n; x++) {
//			for (ll y = 1; y <= m; y++) {
//				ll dx = 0, dy = 0;
//				if (f[x][y] == 'l')dx = 0, dy = -1;
//				if (f[x][y] == 'u')dx = -1, dy = 0;
//				if (f[x][y] == 'r')dx = 0, dy = 1;
//				if (f[x][y] == 'd')dx = 1, dy = 0;
//				ll tx = x + dx * a[x][y], ty = y + dy * a[x][y];
//				if (tx < 0 || ty < 0 || tx > n || ty >m)continue;
//				c[tx][ty]++;
//			}
//		}
//		ll bx = 1, by = 1;
//		for (ll x = 1; x <= n; x++) {
//			for (ll y = 1; y <= m; y++) {
//				if (c[x][y] == 0) {
//					bx = x;
//					by = y;
//				}
//			}
//		}
//		vector<vector<ll>> dp(n + 1, vector<ll>(m + 1, -1));
//		function<ll(ll, ll)> dfs = [&](ll x, ll y) -> ll {
//			if (x <= 0 || y <= 0 || x > n || y >m)return 0;
//			ll& ans = dp[x][y];
//			if (ans != -1)return ans;
//			ans = 0;
//			ll dx = 0, dy = 0;
//			if (f[x][y] == 'l')dx = 0, dy = -1;
//			if (f[x][y] == 'u')dx = -1, dy = 0;
//			if (f[x][y] == 'r')dx = 0, dy = 1;
//			if (f[x][y] == 'd')dx = 1, dy = 0;
//			ans = dfs(x + dx * a[x][y], y + dy * a[x][y]) + 1;
//			//cout << x << " " << y << " " << ans << endl;
//			return ans;
//			};
//		bool flag = true;
//		if (dfs(bx, by) != n * m)flag = false;
//		if (flag) {
//			cout << "Yes" << endl;
//		}
//		else cout << "No" << endl;
//	}
//}
//#include<bits/stdc++.h>
//using namespace std;
//typedef long long ll;
//typedef long double ld;
//#define endl '\n'
//const ll mod = 1e9 + 7;
//ll T;
//ll n, m;
//ll x, y, z;
//int main()
//{
//	ios::sync_with_stdio(0);
//	cin.tie(0);
//	cout.tie(0);
//	ll T; cin >> T;
//	while (T--) {
//		cin >> x >> y >> z;
//		ll d = x + y - z;
//		if (d == 0)cout << (ll)1e9 << endl;
//		else if (d <= z || y < z)cout << -1 << endl;
//		else cout << d << endl;
//	}
//}
//#include<bits/stdc++.h>
//using namespace std;
//typedef long long ll;
//typedef long double ld;
//#define endl '\n'
//const ll mod = 1e9 + 7;
//ll T;
//ll n, k; 
//string s;
//bool check(ll x) {
//	ll cnt = 0;
//	for (ll i = 0; i < s.size(); i++) {
//		if (s[i] == '1') {
//			if (x == 0)return false;
//			cnt++;
//			i += x - 1;
//		}
//	}
//	return cnt <= k;
//}
//int main()
//{
//	ios::sync_with_stdio(0);
//	cin.tie(0);
//	cout.tie(0);
//	ll T; cin >> T;
//	while (T--) {
//		cin >> n >> k;
//		cin >> s;
//		ll l = -1, r = 2e5 + 5;
//		while (l < r - 1) {
//			ll mid = (l + r) >> 1;
//			if (check(mid)) r = mid;
//			else l = mid;
//		}
//		cout << r << endl;
//	}
//}
//#include<bits/stdc++.h>
//using namespace std;
//typedef long long ll;
//typedef long double ld;
//#define endl '\n'
//const ll mod = 1e9 + 7;
//ll T;
//int main()//C读错
//{
//	ios::sync_with_stdio(0);
//	cin.tie(0);
//	cout.tie(0);
//	ll T; cin >> T;
//	while (T--) {
//		string s; cin >> s;
//		ll now = 0;
//		ll cnt = 0;
//		ll ans = 0;
//		for (ll i = 0; i < s.size(); i++) {
//			if (now == 0) {
//				if (s[i] == '6' || s[i] == '9') now = 2, cnt = 1;
//				else if (s[i] == '8' || s[i] == '0') now = 1, cnt = 1;
//				else now = 0, cnt = 0;
//			}
//			else {
//				cnt++;
//				if(s[i] == '6' || s[i] == '9') now = now * 2 * cnt;
//				else if(s[i] == '8' || s[i] == '0') now = now * cnt;
//				else {
//					ans += now;
//					now = 0, cnt = 0;
//				}
//			}
//			cout << now << " " << cnt << endl;
//		}
//		ans += now;
//		cout << ans << endl;
//	}
//}
//#include<bits/stdc++.h>
//using namespace std;
//typedef long long ll;
//typedef long double ld;
//#define endl '\n'
//const ll mod = 1e9 + 7;
//ll T;
//int main()
//{
//	ios::sync_with_stdio(0);
//	cin.tie(0);
//	cout.tie(0);
//	ll T; cin >> T;
//	while (T--) {
//		string s; cin >> s;
//		ll now = 0;
//		ll cnt = 0;
//		ll ans = 0;
//		for (ll i = 0; i < s.size(); i++) {
//
//		}
//		ans += now;
//		cout << ans << endl;
//	}
//}
//#include<bits/stdc++.h>
//using namespace std;
//typedef long long ll;
//typedef long double ld;
//#define endl '\n'
//const ll mod = 1e9 + 7;
//const ll maxn = 2e5 + 5;
//ll T;
//ll n;
//ll l[maxn], r[maxn];
//int main()
//{
//	ios::sync_with_stdio(0);
//	cin.tie(0);
//	cout.tie(0);
//	ll T; cin >> T;
//	while (T--) {
//		cin >> n;
//		for (ll i = 1; i <= n; i++)  cin >> l[i] >> r[i];
//		ll ans = 0;
//		vector<ll>bas(n + 1);
//		vector<bool>pass(n + 1);
//		for (ll i = 32; i >= 0; i--) {
//			bool flag = true;
//			for (ll j = 1; j <= n; j++) {
//				if (pass[j])continue;
//				ll L = (1ll << i) + bas[j], R = (1ll << (i + 1)) - 1 + bas[j];
//				if (l[j] > R || r[j] < L) flag = false;
//			}
//			if (flag) {
//				for (ll j = 1; j <= n; j++) {
//					bas[j] += 1ll << i;
//				}
//				ans += 1ll << i;
//			}
//			else {
//				for (ll j = 1; j <= n; j++) {
//					ll t = (1ll << i) - 1 + bas[j];
//					if (l[j] <= t && r[j] >= t)pass[j] = true;
//					else {
//						if (r[j] < t)continue;
//						else {
//							bas[j] += 1ll << i;
//						}
//					}
//				}
//			}
//		}
//		cout << ans << endl;
//	}
//}
//#include<bits/stdc++.h>
//using namespace std;
//typedef long long ll;
//typedef long double ld;
//#define endl '\n'
//const ll mod = 1e9 + 7;
//const ll maxn = 2e5 + 5;
//ll T;
//ll n;
//ll l[maxn], r[maxn];
//int main()
//{
//	ios::sync_with_stdio(0);
//	cin.tie(0);
//	cout.tie(0);
//	ll T; cin >> T;
//	while (T--) {
//		string s;
//		cin >> s;
//		vector<string>v;
//		string now;
//		ll ans = 0;
//		for (ll i = 0; i < s.size(); i++) {
//			if (s[i] == '6' || s[i] == '9' || s[i] == '8' || s[i] == '0') now += s[i];
//			else {
//				if (now.size())v.push_back(now);
//				now.clear();
//			}
//		}
//		if (now.size())v.push_back(now);
//		ll flag = 0;
//		for (auto it : v) {
//			vector<ll>c(15);
//			ans += it.size() * (it.size() - 1) / 2;
//			for (ll i = 0; i < it.size(); i++) {
//				ll t = it[i] - '0';
//				if (t == 6 || t == 9)ans++;
//				if (t == 0 || t == 8)flag = 1;
//				if (i > 0) {
//					if (it[i] == '6' && it[i - 1] == '9')flag = 1;
//					if (it[i] == '9' && it[i - 1] == '6')flag = 1;
//				}
//				if (t == 6)ans -= c[9];
//				else if (t == 9)ans -= c[6];
//				else if (t == 8)ans -= c[8];
//				else if (t == 0)ans -= c[0];
//				c[t]++;
//			}
//		}
//		ans += flag;
//		cout << ans << endl;
//	}
//}
//#include<bits/stdc++.h>
//using namespace std;
//typedef long long ll;
//typedef long double ld;
//#define endl '\n'
//const ll mod = 1e9 + 7;
//const ll maxn = 2e5 + 5;
//ll T;
//ll n;
//ll ecnt = 0;
//ll head[maxn];
//ll to[maxn << 1];
//ll nxt[maxn << 1];
//char w[maxn << 1];
//bool vis[maxn << 1];
//bool dp[maxn << 1];
//void add(ll u, ll v, char ch) {
//	++ecnt;
//	w[ecnt] = ch;
//	nxt[ecnt] = head[u];
//	to[ecnt] = v;
//	head[u] = ecnt;
//}
//void clear() {
//	for (ll i = 1; i <= n; i++)head[i] = 0;
//	for (ll i = 1; i <= ecnt; i++)vis[i] = false;
//	ecnt++;
//}
//bool is[maxn];
//bool dfs(ll u, ll fa) {
//	bool flag = true;
//	char ch = '#';
//	for (ll i = head[u]; i; i = nxt[i]) {
//		ll v = to[i];
//		if (fa == v)continue;
//		if (ch == w[i])flag = false;
//		ch = w[i];
//		if (!vis[i]) {
//			vis[i] = true;
//			dp[i] &= dfs(v, u);
//		}
//		flag &= dp[i];
//	}
//	return flag;
//}
//int main()
//{
//	ios::sync_with_stdio(0);
//	cin.tie(0);
//	cout.tie(0);
//	ll T; cin >> T;
//	while (T--) {
//		clear();
//		cin >> n;
//		for (ll i = 1; i <= n - 1; i++) {
//			ll u, v; char ch;
//			cin >> u >> v >> ch;
//			add(u, v, ch);
//			add(v, u, ch);
//		}
//		ll ans = 0;
//		for (ll i = 1; i <= n; i++) if (dfs(i, 0))ans++;
//		cout << ans << endl;
//	}
//}
//#include<bits/stdc++.h>
//using namespace std;
//typedef long long ll;
//typedef long double ld;
//#define endl '\n'
//const ll mod = 1e9 + 7;
//const ll maxn = 1e5 + 5;
//ll T;
//ll n;
//vector<ll>p[maxn];
//void pre() {//埃氏筛处理因子表
//	for (ll i = 1; i < maxn; i++) {
//		for (ll j = 1; i * j < maxn; j++) {
//			p[i * j].push_back(j);
//		}
//	}
//}
//int main()
//{
//	ios::sync_with_stdio(0);
//	cin.tie(0);
//	cout.tie(0);
//	pre();
//	ll T; cin >> T;
//	while (T--) {
//		cin >> n;
//		vector<bool>is(n + 1);
//		vector<pair<ll, ll>>ans;
//		is[1] = true;
//		for (ll i = n; i >= 1; i--) {
//			if (is[i])continue;
//			//for (ll j = 2; j <= sqrt(i + 0.5); j++) {
//			//	if (i % j == 0 && !is[j]) {
//			//		ans.push_back({ j, i });
//			//		is[i] = is[j] = true;
//			//		break;
//			//	}
//			//}
//			for(auto j:p[i]){
//				if (j == i)continue;
//				if (!is[j]) {
//					ans.push_back({ j, i });
//					is[i] = is[j] = true;
//					break;
//				}
//			}
//		}
//		cout << ans.size();
//		for (auto it : ans)cout << " " << it.first << " " << it.second;
//		cout << endl;
//	}
//}
//#include<bits/stdc++.h>
//using namespace std;
//typedef long long ll;
//typedef long double ld;
//#define endl '\n'
//const ll mod = 1e9 + 7;
//const ll maxn = 1e5 + 5;
//ll T;
//ll n;
//vector<ll>p[maxn];
//void pre() {//埃氏筛处理因子表
//	for (ll i = 1; i < maxn; i++) {
//		for (ll j = 1; i * j < maxn; j++) {
//			p[i * j].push_back(j);
//		}
//		sort(p[i].begin(), p[i].end());
//	}
//}
//int main()
//{
//	ios::sync_with_stdio(0);
//	cin.tie(0);
//	cout.tie(0);
//	pre();
//	ll T; cin >> T;
//	while (T--) {
//		cin >> n;
//		vector<bool>is(n + 1);
//		vector<ll>ans;
//		is[1] = true;
//		for (ll i = 3; i <= n; i++) {
//			vector<ll>tem;
//			for (ll j = 1; j * i <= n; j++) {
//				if (is[i * j])continue;
//				tem.push_back(j * i);
//			}
//			if (tem.size() > 1) {
//				if (tem.size() & 1) {
//					for (auto it : tem) {
//						if (it == i * 2)continue;
//						ans.push_back(it);
//						is[it] = true;
//					}
//				}
//				else {
//					for (auto it : tem) {
//						ans.push_back(it);
//						is[it] = true;
//					}
//				}
//			}
//		}
//		for (ll i = 2; i <= 2; i++) {
//			vector<ll>tem;
//			for (ll j = 1; j * i <= n; j++) {
//				if (is[i * j])continue;
//				tem.push_back(j * i);
//			}
//			if (tem.size() & 1) {
//				for (auto it : tem) {
//					if (it == 2)continue;
//					ans.push_back(it);
//					is[it] = true;
//				}
//			}
//			else {
//				for (auto it : tem) {
//					ans.push_back(it);
//					is[it] = true;
//				}
//			}
//		}
//		cout << ans.size() / 2;
//		for (auto it : ans)cout << " " << it;
//		cout << endl;
//	}
//}
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
#define endl '\n'
const ll mod = 1e9 + 7;
const ll maxn = 1e5 + 5;
const ll inf = 1e18;
ll T;
ll n, m, k;
ll e[maxn], d[maxn], w[maxn];
vector<pair<ll,ll>>to[maxn];
vector<ll>beg;
ll cnt[maxn];//经过次数
vector<ll>f[maxn];//要删的边的v
bool vis[maxn];
struct edge {
	ll v, dis, u;
	bool operator<(edge t)const {
		return dis > t.dis;
	}
};
void clear() {
	beg.clear();
	for (ll i = 1; i <= n; i++)to[i].clear(), cnt[i] = 0, f[i].clear(), vis[i] = false;
}
void del(ll u) {
	sort(f[u].begin(), f[u].end());
	ll cur = 0;
	for (auto it : to[u]) if (cur < f[u].size() && f[u][cur] == it.first) it.second = inf, cur++;
}
void solve() {
	priority_queue<edge>q;//当前权值,出发点
	for (ll i = 1; i <= k; i++) q.push({ e[i], 0, 0}), d[e[i]] = 0;
	while (q.size()) {
		auto it = q.top(); q.pop();
		ll u = it.v, nowd = it.dis, from = it.u;
		//cout << u << endl;
		if (vis[u])continue;
		if (cnt[u] < d[u]) cnt[u]++,f[u].push_back(from);
		else {
			//if(from != 0)del(u);
			vis[u] = true;
			if (u == 1) {
				cout << nowd << endl;
				return;
			}
			for (auto it : to[u]) {
				ll v = it.first, w = it.second;
				//cout << v << endl;
				q.push({ v,w + nowd, u });
			}
		}
	}
	cout << -1 << endl;
}
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	ll T; cin >> T;
	while (T--) {
		clear();
		cin >> n >> m >> k;
		for (ll i = 1; i <= k; i++) {
			cin >> e[i];
			beg.push_back(e[i]);
		}
		for (ll i = 1; i <= n; i++) cin >> d[i];
		for (ll i = 1; i <= m; i++) {
			ll u, v, w; cin >> u >> v >> w;
			to[u].push_back({ v, w });
			to[v].push_back({ u, w });
		}
		for (auto it : to) {
			sort(it.begin(), it.end());
		}
		solve();
	}
}

詳細信息

Test #1:

score: 100
Accepted
time: 3ms
memory: 8296kb

input:

2
3 4 1
3
1 1 1
1 2 1
1 2 2
2 3 1
2 3 2
3 2 2
2 3
2 0 0
1 2 1
1 3 1

output:

4
-1

result:

ok 2 number(s): "4 -1"

Test #2:

score: 0
Accepted
time: 520ms
memory: 87368kb

input:

100
100 1808 2
94 47
3 3 0 2 4 3 3 4 0 0 2 2 2 3 2 4 0 2 3 4 4 2 0 3 4 3 1 0 2 1 2 2 0 3 4 4 4 1 2 2 3 1 0 0 3 1 4 2 1 3 3 4 3 0 4 1 0 3 2 1 4 4 1 3 2 3 3 3 3 1 0 3 0 4 3 1 0 4 0 4 4 1 2 0 0 4 1 3 3 3 0 2 2 1 1 2 3 4 1 2
72 29 1138
59 78 2398
95 5 1610
32 46 4176
36 99 8143
100 69 413
61 58 1595
9 9...

output:

5109
1021
3293
4646
3796
3394
1884
6772
2329
2067
3296
2809
865
4249
2241
3792
2135
2544
3343
1775
10602
4677
1700
2150
7071
14055
3368
2322
1113
1980
3067
1617
1702
-1
2879
6265
2065
2810
2289
3001
402
3769
18118
6874
7879
3823
-1
510
2636
10564
-1
3166
3615
7526
5549
1261
3302
270
4440
1998
3350
3...

result:

ok 100 numbers