QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#447771#4898. 基础图论练习题Talaodi82 2807ms69916kbC++1410.5kb2024-06-18 19:47:462024-06-18 19:47:47

Judging History

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

  • [2024-06-18 19:47:47]
  • 评测
  • 测评结果:82
  • 用时:2807ms
  • 内存:69916kb
  • [2024-06-18 19:47:46]
  • 提交

answer

#include <bits/stdc++.h>

namespace IO {
	template <class Stream>
	Stream& fmtbase(Stream& out, const char* format) {
		for (; *format; format++) {
			if (*format == '{' && *(format + 1) == '}') {
				throw std::invalid_argument("Error Number of Parameters!");
			}
			
			out << *format;
		}
		
		return out;
	}
	
	template <class Stream, class Fst, class... Nxt>
	Stream& fmtbase(Stream& out, const char* format, const Fst& value, const Nxt&... nxt) {
		for (; *format; format++) {
			if (*format == '{' && *(format + 1) == '}') {
				out << value;
				return fmtbase(out, format + 2, nxt...);
			} 
			
			out << *format;
		}
		
		throw std::invalid_argument("Error Number of Parameters!");
	}
	
	template <class... Ps>
	std::string to_string(const char* format, const Ps&... ps) {
		std::stringstream ss;
		fmtbase(ss, format, ps...);
		return ss.str();
	}

	template <class... Ps>
	std::ostream& fmtout(const char* format, const Ps&... ps) {
		return fmtbase(std::cout, format, ps...);
	}
	
	template <class... Ps>
	std::ostream& fmterr(const char* format, const Ps&... ps) {
		return fmtbase(std::cerr, format, ps...);
	}
	
	std::istream& allin() {
		return std::cin;
	}
	
	template <class Fst, class ... Nxt>
	std::istream& allin(Fst& fst, Nxt&... nxt) {
		std::cin >> fst;
		return allin(nxt...);
	}
	
	template <class Iter>
	std::istream& rangin(Iter begin, Iter end) {
		while (begin != end) {
			std::cin >> *begin;
			begin++;
		}
		
		return std::cin;
	}
	
	namespace Fast {
		bool sync = false;
		
		char buf[1 << 23];
		char *p1 = buf, *p2 = buf;
		
		void sync_with_ios(bool s) {
			sync = s;
		}
		
		char getchar() {
			if (sync) {
				return (char) std::cin.get();
			}
			else {
				if (p1 == p2) {
					p1 = buf;
					p2 = p1 + fread(buf, 1, 1 << 22, stdin);
				}
				
				if (p1 == p2) {
					return EOF;
				}
				else {
					char res = *p1;
					p1++;
					return res;
				}
			}
		}
		
		void read() { }
		
		template <class T, class... U>
		void read(T& x, U&... us) {
			x = 0;
			T pos = 1;
			
			char c = getchar();
			while (!isdigit(c)) {
				if (c == '-') {
					pos = -1;
				}
				
				c = getchar();
			}
			
			while (isdigit(c)) {
				x = 10 * x + c - '0';
				c = getchar();
			}
			
			x *= pos;
			read(us...);
		}
		
		template <class T>
		void write(const T& t) {
			if (t > 10) {
				write(t / 10);
			}
			
			std::cout << (int) (t % 10);
		}
	}
}

namespace Solve {
	#define int long long

	using namespace IO;

	using ll = long long;
	using ul = unsigned long long;
	using db = double;
	using ld = long double;
	using ui = unsigned;
	using ib = __int128;
	using ub = __uint128_t;

	int const INF = std::numeric_limits<int>::max();
	int const NINF = std::numeric_limits<int>::min();
	ll const LINF = std::numeric_limits<ll>::max();
	ll const LNINF = std::numeric_limits<ll>::min();
	ld const EPS = 1e-6;

	std::mt19937 mt;

	ll rnd(ll l, ll r) {
		return std::uniform_int_distribution<ll>(l, r)(mt);
	}

	template <class T>
	inline int isz(const T& v) {
		return v.size();
	}

	template <class T>
	inline T& ckmx(T& a, T b) {
		return a < b ? (a = b) : a;
	}

	template <class T>
	inline T& ckmi(T& a, T b) {
		return b < a ? (a = b) : a;
	}

	template <signed M>
	struct ModInt {
		static signed const MOD = M;

		ui v;

		ModInt() : v(0) {}

		ModInt(ll v) {
			if (-MOD <= v && v < 2 * MOD) {
				if (v >= MOD) {
					v -= MOD;
				}
			}
			else {
				v %= MOD;
			}
			if (v < 0) {
				v += MOD;
			}
			this->v = v;
		}

		ModInt operator++(signed) {
			auto t = *this;
			v = v == MOD - 1 ? 0 : v + 1;
			return t;
		}
		
		ModInt& operator++() {
			v = v == MOD - 1 ? 0 : v + 1;
			return *this;
		}
		
		ModInt operator--(signed) {
			auto t = *this;
			v = v == 0 ? MOD - 1 : v - 1;
			return t;
		}

		ModInt& operator--() {
			v = v == 0 ? MOD - 1 : v - 1;
			return *this;	
		}

		ModInt& operator+=(ModInt rhs) {
			v = v + rhs.v >= MOD ? v + rhs.v - MOD : v + rhs.v;
			return *this;
		}

		ModInt& operator-=(ModInt rhs) {
			v = v >= rhs.v ? v - rhs.v : v + MOD - rhs.v;
			return *this;
		}

		ModInt& operator*=(ModInt rhs) {
			v = (ul) v * rhs.v % MOD;
			return *this;
		}

		static void exgcd(signed a, signed b, signed& x, signed& y) {
			if (!b) {
				x = 1, y = 0;
				return;
			}

			signed t = a / b;
			exgcd(b, a - t * b, y, x);
			y -= t * x;
		}

		ModInt inv() const {
			assert(v != 0);

			signed x, y;
			exgcd(v, MOD, x, y);
			if (x < 0) {
				x += MOD;
			}			
			return x;
		}

		ModInt& operator/=(ModInt rhs) {
			return operator*=(rhs.inv());
		}

		ModInt fpow(ll b) const {
			assert(b >= 0);
			ModInt ans = 1;
			ModInt p = *this;
			while (b) {
				if (b & 1) {
					ans *= p;
				}
				p *= p;
				b >>= 1;
			}
			return ans;
		}

		friend bool operator==(ModInt a, ModInt b) {
			return a.v == b.v;
		}

		friend bool operator!=(ModInt a, ModInt b) {
			return a.v != b.v;
		}

		friend ModInt operator+(ModInt a, ModInt b) {
			return a += b;
		}

		friend ModInt operator-(ModInt a, ModInt b) {
			return a -= b;
		}

		friend ModInt operator*(ModInt a, ModInt b) {
			return a *= b;
		}

		friend ModInt operator/(ModInt a, ModInt b) {
			return a /= b;
		}

		friend ModInt operator-(ModInt a) {
			return 0 - a;
		}
	};

	template <signed MOD>
	std::istream& operator>>(std::istream& in, ModInt<MOD>& mint) {
		ll v;
		in >> v;
		mint = ModInt<MOD>(v);
		
		return in;
	}

	template <signed MOD>
	std::ostream& operator<<(std::ostream& out, ModInt<MOD> mint) {
		return out << mint.v;
	}

	template <class T, int B>
	struct FastPow {
		T baby[B + 1];
		T gaint[B + 1];
		
		FastPow(T b) {
			baby[0] = 1;
			for (int i = 1; i <= B; i++) {
				baby[i] = baby[i - 1] * b;
			}
			
			gaint[0] = 1;
			for (int i = 1; i <= B; i++) {
				gaint[i] = gaint[i - 1] * baby[B];
			}
		}
		
		T get(int n) {
			return gaint[n / B] * baby[n % B];
		}
	};

	int const MOD = 998244353;

	template <signed M>
	const signed ModInt<M>::MOD;

	using Mint = ModInt<MOD>;

	int const N = 2e5 + 10;

	struct Group {
		int d, x;
	};

	struct Edge {
		int u, v, w;
	};

	int n, a, b;
	std::vector<int> ds[N + 1];
	Group gs[N + 1];
	std::vector<Edge> eds;
	Mint ans;
	std::map<int, int> fa;

	int get(int x) {
		return fa[x] == x ? x : fa[x] = get(fa[x]);
	}

	int grt(int n, std::vector<int> d, int v) {
		while (true) {
			int mi = -1;
			for (int i = 0; i < isz(d); i++) {
				if (d[i] && (mi == -1 || d[i] < d[mi])) {
					mi = i;
				}
			}
			if (mi == -1 || n <= d[mi]) {
				return v;
			}

			int c = n / d[mi];
			for (int i = 0; i < isz(d); i++) {
				if (d[i] && i != mi) {
					ckmi(c, d[i] / d[mi]);
				}
			}

			n -= d[mi] * c;
			if (v >= n) {
				v -= ((v - n) / d[mi] + 1) * d[mi];
				if (n < d[mi] && v < 0) {
					v += d[mi];
					return v;
				}
			}

			for (int i = 0; i < isz(d); i++) {
				if (d[i] && i != mi) {
					d[i] -= c * d[mi];
				}
			}
		}
	}

	Mint count(int n, std::vector<int> d) {
		Mint ans;
		while (true) {
			int mi = -1;
			for (int i = 0; i < isz(d); i++) {
				if (d[i] && (mi == -1 || d[i] < d[mi])) {
					mi = i;
				}
			}
			if (mi == -1 || n <= d[mi]) {
				ans += n;
				break;
			}

			int c = n / d[mi];
			for (int i = 0; i < isz(d); i++) {
				if (d[i] && i != mi) {
					ckmi(c, d[i] / d[mi]);
				}
			}

			n -= d[mi] * c;
			if (n < d[mi]) {
				ans += d[mi] - n;
			}

			for (int i = 0; i < isz(d); i++) {
				if (d[i] && i != mi) {
					d[i] -= c * d[mi];
				}
			}			
		}
		return ans;
	}

	std::vector<int> mark(int n, std::vector<int> d) {
		std::vector<int> ans, od;
		od = d;
		while (true) {
			int mi = -1;
			for (int i = 0; i < isz(d); i++) {
				if (d[i] && (mi == -1 || d[i] < d[mi])) {
					mi = i;
				}
			}
			if (mi == -1 || n <= d[mi]) {
				break;
			}

			ans.push_back(od[mi]);

			int c = n / d[mi];
			for (int i = 0; i < isz(d); i++) {
				if (d[i] && i != mi) {
					ckmi(c, d[i] / d[mi]);
				}
			}

			n -= d[mi] * c;
			for (int i = 0; i < isz(d); i++) {
				if (d[i] && i != mi) {
					d[i] -= c * d[mi];
				}
			}			
		}

		ans.erase(std::unique(ans.begin(), ans.end()), ans.end());
		return ans;
	}

	namespace Sub1 {
		void main() {
			std::sort(gs + 1, gs + a + 1, [&](const Group& a, const Group& b) {
				return a.x < b.x;
			});

			Mint lst = n;
			for (int i = 1; i <= a; i++) {
				auto d = ds[i - 1];
				d.push_back(gs[i].d);
				auto cur = count(n, d);
				ans += (lst - cur) * gs[i].x;
				ds[i] = mark(n, d);
				lst = cur;
			}
		}
	}

	namespace Sub2 {
		void solve(int l, int r, std::vector<int> vs) {
			if (l > r || isz(vs) <= 1) {
				return;
			}

			int mid = (l + r) >> 1;
			std::map<int, std::vector<int>> mp;
			for (auto& v : vs) {
				mp[grt(n, ds[mid], v)].push_back(v);
			} 

			if (l == r) {
				for (auto& pr : mp) {
					for (int i = 0; i + 1 < isz(pr.second); i++) {
						eds.push_back({ pr.second[i], pr.second[i + 1], gs[l].x });
						ans -= gs[l].x;
					}
				}
				return;
			}

			for (auto& pr : mp) {
				solve(l, mid, pr.second);
			}

			std::vector<int> vv;
			for (auto& pr : mp) {
				vv.push_back(pr.second[0]);
			}
			solve(mid + 1, r, vv);
		}

		void main() {
			for (auto& v : eds) {
				fa[v.u] = v.u;
				fa[v.v] = v.v;
			}

			std::vector<int> vv;
			for (auto& v : eds) {
				vv.push_back(v.u);
				vv.push_back(v.v);
			}
			std::sort(vv.begin(), vv.end());
			vv.erase(std::unique(vv.begin(), vv.end()), vv.end());
			solve(1, a, vv);

			std::sort(eds.begin(), eds.end(), [&](const Edge& a, const Edge& b) {
				return a.w < b.w;
			});
			for (auto& e : eds) {
				if (get(e.u) != get(e.v)) {
					ans += e.w;
					fa[get(e.u)] = get(e.v);
				}
			}
		}
	}

	void main() {
		std::cin >> n >> a >> b;

		for (int i = 1; i <= a; i++) {
			int d, x;
			std::cin >> d >> x;
			gs[i] = { d, x };
		}

		for (int i = 1; i <= b; i++) {
			int x, y, w;
			std::cin >> x >> y >> w;
			eds.push_back({ x, y, w });
		}

		Sub1::main();
		Sub2::main();

		fmtout("{}\n", ans);
	}

	void init() {

	}

	void clear() {

	}
}

signed main() {
	std::ios::sync_with_stdio(false);
	std::cin.tie(0);
	std::cout.tie(0);
	
	int t = 1;
	// std::cin >> t;

	Solve::init();
	
	for (int id = 1; id <= t; id++) {
		Solve::main();
		Solve::clear();
	}

	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 4
Accepted

Test #1:

score: 4
Accepted
time: 221ms
memory: 21260kb

input:

161199 9 46510
147335 540442844
159493 801351455
149342 821625305
128476 843250712
95524 275754315
139315 106523502
93575 680460786
155498 328812257
146020 410466645
79992 141967 50596784
152210 68644 268349216
72549 96959 42994091
93869 27394 945120577
2909 81886 270684270
12735 35026 871917997
974...

output:

359714743

result:

ok 1 number(s): "359714743"

Test #2:

score: 0
Accepted
time: 205ms
memory: 26812kb

input:

168549 9 49402
160577 34610415
114623 670751010
74448 676966248
53782 845469137
130729 375561046
31610 261496571
134601 154875802
136129 905308676
166248 499420220
69637 72676 875637640
160442 125460 1269794
146261 61770 714794725
137610 1291 490170432
162092 81850 488118013
106400 48193 276190368
4...

output:

520439176

result:

ok 1 number(s): "520439176"

Test #3:

score: 0
Accepted
time: 201ms
memory: 22612kb

input:

127164 9 45109
56483 490066497
70966 229077054
87305 993081887
72423 442762798
80262 200507011
101712 162752728
67532 590730535
44956 565466274
124237 429166816
13030 8906 742024040
97259 101468 187678659
13401 4301 143856524
125750 80473 258719294
106155 10339 592121345
120034 92354 50915550
112430...

output:

211463174

result:

ok 1 number(s): "211463174"

Test #4:

score: 0
Accepted
time: 248ms
memory: 22956kb

input:

158784 9 48415
138305 177767002
147417 50196642
85527 776201932
144377 990389932
118355 310906417
145220 218744495
145002 132736644
51947 834751363
139733 839880491
158443 157692 159261414
111518 14927 747973081
37498 66196 69874791
11597 115114 22394413
16704 133459 109302190
112143 46551 813021872...

output:

151875883

result:

ok 1 number(s): "151875883"

Test #5:

score: 0
Accepted
time: 110ms
memory: 14804kb

input:

111371 0 45933
13298 59545 852258097
94111 54245 459369673
40744 23311 644404848
37039 92443 220984611
17374 43165 421794343
57652 57965 470479953
62977 14481 563172671
102144 3471 36594913
46628 43278 11508424
55965 80136 777230453
56962 35374 349098036
34825 27995 339605509
43021 17657 780921827
5...

output:

92500087

result:

ok 1 number(s): "92500087"

Subtask #2:

score: 8
Accepted

Dependency #1:

100%
Accepted

Test #6:

score: 8
Accepted
time: 397ms
memory: 27624kb

input:

191116 49595 45279
87483 815631830
153579 433065789
167569 346797140
98560 154881536
170720 13622837
133236 561208103
155537 421316363
140536 514298139
6005 986290017
154400 85233907
166826 351094521
174419 304435906
173900 61174962
112778 693574534
104503 745038995
134920 31228457
117606 662581798
...

output:

938591083

result:

ok 1 number(s): "938591083"

Test #7:

score: 0
Accepted
time: 333ms
memory: 31028kb

input:

158784 46472 48415
117545 640905746
155053 431989480
155561 63255800
142377 310683680
127120 588058774
150004 169474069
127002 588668628
150906 152304212
108743 687077799
41914 919104130
85429 816335084
132059 559711015
9237 981038801
108448 689051256
152572 446125546
151056 149667391
3602 992249821...

output:

719582900

result:

ok 1 number(s): "719582900"

Test #8:

score: 0
Accepted
time: 387ms
memory: 30444kb

input:

168163 49816 47597
129571 532707978
89007 791596146
120950 589183161
116493 617468410
89768 786647320
94035 758413684
137865 480953267
136999 487494650
134286 503698037
115468 623920627
128035 542927955
91335 776005194
150127 398148336
2766 992431297
143028 109308374
98376 730561618
135270 13761588
...

output:

934807905

result:

ok 1 number(s): "934807905"

Test #9:

score: 0
Accepted
time: 304ms
memory: 26404kb

input:

121718 46964 48021
43354 819111261
10530 955367869
80777 501381455
69544 639333275
114691 89113603
45387 810937142
31928 865064071
89801 391744587
94263 339137420
119935 23921502
56223 766531932
108313 167240585
106757 185911175
30245 872961430
71691 612640613
102314 242401520
101122 257170039
61627...

output:

135228392

result:

ok 1 number(s): "135228392"

Test #10:

score: 0
Accepted
time: 332ms
memory: 34500kb

input:

188134 49787 48968
187895 50171716
119433 814368117
139552 750931626
132931 458299971
142653 741277533
177407 244563903
130505 469034750
145157 399488414
173707 262070086
168863 158870562
172377 35902964
140369 421860855
29507 967813282
165485 301042299
143784 737822317
162077 173448746
108264 85153...

output:

100771003

result:

ok 1 number(s): "100771003"

Subtask #3:

score: 6
Accepted

Test #11:

score: 6
Accepted
time: 2ms
memory: 9804kb

input:

569435269457904707 2 0
490445920091092693 772271583
144842828305643603 609043885

output:

884694794

result:

ok 1 number(s): "884694794"

Test #12:

score: 0
Accepted
time: 0ms
memory: 12048kb

input:

946929772456816659 2 0
589193907831915013 196301185
485768367910597533 207014034

output:

790540706

result:

ok 1 number(s): "790540706"

Test #13:

score: 0
Accepted
time: 2ms
memory: 9688kb

input:

693038683299151358 2 0
654733556025919068 724998910
450253521190874799 187460097

output:

122292064

result:

ok 1 number(s): "122292064"

Test #14:

score: 0
Accepted
time: 2ms
memory: 9708kb

input:

572269482188906358 2 0
545978502848607475 331750201
488577730099900109 477584735

output:

429885702

result:

ok 1 number(s): "429885702"

Test #15:

score: 0
Accepted
time: 0ms
memory: 11812kb

input:

984888155303961325 2 0
421568681423492040 823358650
324408005979881943 905919848

output:

551223124

result:

ok 1 number(s): "551223124"

Test #16:

score: 0
Accepted
time: 2ms
memory: 11980kb

input:

968068649251960108 2 0
932666179822285222 303897491
422068063538287737 405622211

output:

516717723

result:

ok 1 number(s): "516717723"

Test #17:

score: 0
Accepted
time: 2ms
memory: 9956kb

input:

973235486287221374 2 0
604729607242747292 566399250
440704799734330948 93237801

output:

772791524

result:

ok 1 number(s): "772791524"

Test #18:

score: 0
Accepted
time: 2ms
memory: 9800kb

input:

980842002786834388 2 0
921076927921054095 989436809
917078581302025088 354268450

output:

387335763

result:

ok 1 number(s): "387335763"

Test #19:

score: 0
Accepted
time: 0ms
memory: 9700kb

input:

584600268153835325 2 0
436736455094118542 788823700
379215887395241676 440751386

output:

178749302

result:

ok 1 number(s): "178749302"

Test #20:

score: 0
Accepted
time: 3ms
memory: 11700kb

input:

984888155303961325 2 0
421568681423492040 823358650
324408005979881943 905919848

output:

551223124

result:

ok 1 number(s): "551223124"

Subtask #4:

score: 18
Accepted

Dependency #3:

100%
Accepted

Test #21:

score: 18
Accepted
time: 126ms
memory: 29720kb

input:

569435269457904707 2 48002
490445920091092693 772271583
144842828305643603 609043885
71626464779726163 20936760728342582 933619218
254533877531926689 561120543297327423 444805145
102181371350776436 64807827761321835 63236550
442490347461393187 274703226312639148 379888813
153103619447430279 56932615...

output:

264605976

result:

ok 1 number(s): "264605976"

Test #22:

score: 0
Accepted
time: 128ms
memory: 29848kb

input:

504260032580621389 2 49361
270823699250720124 30858888
336528726133157676 686676838
411951311400351555 331964440631830249 849153007
395362490592741772 476242043133170955 233632950
183299785979517028 300783233878432816 890373397
101096990546501308 294220083765028120 482548478
30494794811726538 492575...

output:

374280020

result:

ok 1 number(s): "374280020"

Test #23:

score: 0
Accepted
time: 128ms
memory: 31292kb

input:

908984547406193258 2 49006
553146168947167785 921235648
439052241502823206 685482302
602040034167963673 319806281814227523 602421493
889680730869149610 662785644521343266 319100701
855861307841385482 123218837422189032 958395288
789474388061739888 886525713531875881 485625803
506682328285523072 8679...

output:

411258291

result:

ok 1 number(s): "411258291"

Test #24:

score: 0
Accepted
time: 128ms
memory: 30288kb

input:

645595087071518014 2 46364
502798671238091149 130131399
324145073511001064 249141640
529562079328876365 298584769486918994 793053817
104449532477780267 612956797119263913 599706657
537335025824879813 509591120306867932 422994501
3573858933523744 362779176725767538 466503134
355006270273722975 606167...

output:

3939553

result:

ok 1 number(s): "3939553"

Test #25:

score: 0
Accepted
time: 124ms
memory: 31332kb

input:

719221297460377128 2 47571
344669347369453785 109414971
630436210393683647 527587080
494442208767214644 568762326175380228 274970054
57477492106404787 655245493834324395 382109587
22155928017304041 59482593547715744 873161380
187440545343246007 190303544007160534 159038457
506940482480256741 6413591...

output:

70514973

result:

ok 1 number(s): "70514973"

Test #26:

score: 0
Accepted
time: 92ms
memory: 30020kb

input:

895088201401004405 2 45041
276028463639596405 456551182
805436189268999970 73771
21429629043534406 631368195310636941 265763227
662737085246639506 143087521945488388 635548439
377675072184922400 804129509385729008 716798383
350029179084366085 117553290957648227 20894738
122339684090997249 7205501057...

output:

559035760

result:

ok 1 number(s): "559035760"

Test #27:

score: 0
Accepted
time: 462ms
memory: 25624kb

input:

853901589698398947 2 47600
504553695105130092 847799116
138986940711272376 645918409
805868840752605206 78417023376575599 841040724
729516722093143233 218204564225574757 336393903
730920155682863361 695576676583032360 406662382
387801338291686723 202931704070108854 337663750
247673343610665743 24573...

output:

20383713

result:

ok 1 number(s): "20383713"

Test #28:

score: 0
Accepted
time: 123ms
memory: 28484kb

input:

670502957421329993 2 45217
483745611802893710 733999054
668071203574411469 828666336
420971137268931813 366553146611242395 965231439
287424331604163221 506949430264341972 601249827
149442959137057706 557729764807337099 145435283
24271514949210121 655375054865364550 969273095
570625553631888431 32471...

output:

937105664

result:

ok 1 number(s): "937105664"

Test #29:

score: 0
Accepted
time: 133ms
memory: 31496kb

input:

563845195733711553 2 48989
229866420401531786 558292747
545061569237416562 6907852
132266473456293640 75289038464304103 118029834
32731247863057693 356593250668739234 378210865
66114516634328274 92146176364809198 445824305
231042900349456054 325921825145329565 425319020
423843183122176900 5050925061...

output:

651838351

result:

ok 1 number(s): "651838351"

Test #30:

score: 0
Accepted
time: 120ms
memory: 29836kb

input:

804068805652796381 2 45790
713896086745970460 932094415
451836086076043686 180589234
797324209326094324 458554421458651867 300552452
666099368215435761 398615680976044224 517160772
93127604003167259 65073324216076012 364948453
746562120109527370 478791782647716593 625536788
584650813747492507 584407...

output:

91959720

result:

ok 1 number(s): "91959720"

Subtask #5:

score: 12
Accepted

Test #31:

score: 12
Accepted
time: 3ms
memory: 10496kb

input:

755526150476311190 942 0
492334667739348527 1
755523898623296976 1
532486636690994793 1
755526150476030559 1
755526150476249097 1
502164090270592200 1
657422656495814703 1
487200614853438190 1
311037325561173142 1
755526150475651155 1
125287404340238660 1
755524914808674090 1
755526150476177007 1
75...

output:

546044429

result:

ok 1 number(s): "546044429"

Test #32:

score: 0
Accepted
time: 8ms
memory: 10528kb

input:

507397654005748030 973 0
507391491616563534 1
486814015790119176 1
333131389050214032 1
363564475994643564 1
465930313898633808 1
139522156177690314 1
507395579080257474 1
86630001225723132 1
507395634795467574 1
507396923359845774 1
472957579895774142 1
211220548093936200 1
507397483302327114 1
507...

output:

873803086

result:

ok 1 number(s): "873803086"

Test #33:

score: 0
Accepted
time: 4ms
memory: 10260kb

input:

603106685583649335 921 0
550056634223640253 1
603106685583649293 1
603106685583647605 1
603106685583643690 1
603106685583647260 1
603106685583645101 1
603106685583206332 1
603106685583646490 1
579053271797467737 1
603106685567627560 1
392817087439609936 1
603106685583643465 1
603106685583648090 1
60...

output:

249400664

result:

ok 1 number(s): "249400664"

Test #34:

score: 0
Accepted
time: 7ms
memory: 10212kb

input:

548596182165075765 943 0
548596176080168583 1
548596182156180063 1
312480420249896937 1
548596163341594933 1
526283600729694623 1
548596158109050143 1
403131997716059924 1
434962771902913720 1
503166563025971068 1
334309818515550442 1
548596177929282553 1
548596181450546783 1
548596147814225823 1
54...

output:

315888763

result:

ok 1 number(s): "315888763"

Test #35:

score: 0
Accepted
time: 9ms
memory: 10196kb

input:

757339678164545873 914 0
639318686980737134 1
746121423482808728 1
757339678163450618 1
742690258664301578 1
615075436001700347 1
735156649863536078 1
748312116661086428 1
720777012721160772 1
733811525870561678 1
746526366212816378 1
743741354498887825 1
753440640705502328 1
735178291510182878 1
72...

output:

748030011

result:

ok 1 number(s): "748030011"

Test #36:

score: 0
Accepted
time: 7ms
memory: 10204kb

input:

678523609535069397 961 0
678523501457247993 1
678341707003179753 1
678213366219732921 1
596032992350559535 1
595323423910072641 1
178264171486256288 1
678331675351935897 1
353022445409011341 1
653752496830522075 1
662470342111950027 1
587709190707850701 1
678270056924891769 1
677027683908676175 1
67...

output:

562697340

result:

ok 1 number(s): "562697340"

Test #37:

score: 0
Accepted
time: 5ms
memory: 10388kb

input:

657959922343486841 902 0
650132742778059115 1
105135315791795180 1
438709014360864607 1
545602442587344080 1
657551739592023011 1
656791446287459707 1
657959922133303499 1
647469446648658309 1
657959922343384019 1
657959922221719769 1
336017444559583475 1
657959922253125629 1
655097797158940969 1
19...

output:

300994893

result:

ok 1 number(s): "300994893"

Test #38:

score: 0
Accepted
time: 9ms
memory: 10452kb

input:

545476271566415902 948 0
502943849064064720 1
545153141190505744 1
493528954491284005 1
487490221799012640 1
391805643829976272 1
545466964425150144 1
545474613254014704 1
545475659935859328 1
48415031136648176 1
545475230527923072 1
545472466214333424 1
545475176851931040 1
405305381846539616 1
393...

output:

621606394

result:

ok 1 number(s): "621606394"

Test #39:

score: 0
Accepted
time: 4ms
memory: 10292kb

input:

768089367882777564 903 0
768042195730743057 1
624180099065408353 1
677932298998893337 1
761912479820021969 1
373002333986242953 1
681859753068860049 1
768089367882777309 1
580672767835556559 1
768089367882750069 1
51197080622037114 1
737402458661389169 1
768089367882765501 1
707354099585711345 1
768...

output:

319523314

result:

ok 1 number(s): "319523314"

Test #40:

score: 0
Accepted
time: 6ms
memory: 10528kb

input:

803879216581914933 998 0
498552666676978841 1
803189592600095992 1
803577182309491044 1
803875534594601716 1
803827683448699636 1
803767099629307124 1
803775818980883188 1
803799950365214452 1
803816279020876020 1
803806021800931060 1
803585821604611604 1
695090981117645328 1
803690137369875484 1
68...

output:

867132754

result:

ok 1 number(s): "867132754"

Subtask #6:

score: 12
Accepted

Dependency #3:

100%
Accepted

Dependency #5:

100%
Accepted

Test #41:

score: 12
Accepted
time: 13ms
memory: 10368kb

input:

658450692215768892 966 184
215944253331969524 463889684
658450636472429991 583551110
658450692215733673 179443509
658450692215624997 605779678
508574445107762299 859274405
658450681194937638 515630669
63736085272552748 994573345
354907806666837319 932072760
658450692214054043 663256872
6584506911545...

output:

12943668

result:

ok 1 number(s): "12943668"

Test #42:

score: 0
Accepted
time: 13ms
memory: 10280kb

input:

503100602634994293 941 197
502254941823458923 410719580
502449274817977963 533547443
502177856576665963 308661716
503100602634994286 848364395
502374606833359723 403813521
500909455018842115 763372389
436423359815749426 878348769
502539379040627347 691350061
500478693279270763 227006141
502429907131...

output:

364124022

result:

ok 1 number(s): "364124022"

Test #43:

score: 0
Accepted
time: 14ms
memory: 10336kb

input:

794543759708235787 990 200
794543751390436516 498296758
710761081263791990 541764893
794543758436298068 338401430
764875891357270304 761817879
735614769808273484 635855135
794543754989372684 409779107
717851578458891300 765401991
161042388300387362 617871045
511627804824526915 940296882
794543756648...

output:

69328383

result:

ok 1 number(s): "69328383"

Test #44:

score: 0
Accepted
time: 14ms
memory: 10312kb

input:

565276290672233192 964 187
565276290670765530 537786598
565276290502116615 193903398
565276290671867680 489303416
383466025969347505 426331410
565276288985082995 229639082
535558729837813905 325909644
474196520248462440 639989576
307149486876119700 818820866
565276290671678355 504462133
565276290446...

output:

631847000

result:

ok 1 number(s): "631847000"

Test #45:

score: 0
Accepted
time: 13ms
memory: 10460kb

input:

719500283503014592 940 191
596954007460465466 459554486
711843970141183964 193724011
662050619203756685 326598696
687071628534410294 147562554
671522026560145754 166094666
632739715281611294 435823622
629554949383658196 880683852
719500283450265202 559607128
430055232270736641 937845392
644024279806...

output:

537913133

result:

ok 1 number(s): "537913133"

Test #46:

score: 0
Accepted
time: 12ms
memory: 12304kb

input:

746081052613716768 968 186
114806715755696720 513769389
746081051437216030 737208639
746081050913326390 761645235
610859457429446257 863358451
384587317556948678 937572929
745110336760534160 247865779
136264144005106400 510157400
746050759360662160 25053097
744815172303539440 141073649
7451915550759...

output:

802963512

result:

ok 1 number(s): "802963512"

Test #47:

score: 0
Accepted
time: 12ms
memory: 10540kb

input:

838569256262277534 902 194
368691841488556872 548966575
829187927329664760 439579643
599012418708046200 321256268
99251099043250440 385138871
666529761967066140 305621549
838569256260878142 77869183
242796476636375376 563943468
115450425805486200 223598230
473794040645928288 526038447
52249254896767...

output:

902343531

result:

ok 1 number(s): "902343531"

Test #48:

score: 0
Accepted
time: 11ms
memory: 10112kb

input:

760989644838376533 918 184
760989644837357739 253937074
760989644735019972 299540701
721179032823874952 367005016
737774529756321877 63616085
676404669053970597 413375592
760989644763128262 467319659
696835782280314477 162526593
760989638053297620 744413973
256689804086807511 609569539
6462443154065...

output:

255884156

result:

ok 1 number(s): "255884156"

Test #49:

score: 0
Accepted
time: 8ms
memory: 10352kb

input:

605066708578608907 985 195
605040377919406881 845020040
605066682441689774 600561672
605066708559869524 61659795
570731240318881512 736991447
605066708545791824 69236017
605066702556562799 451865546
605045604828879780 81156584
605066708578248274 113710627
520890466933562693 888100231
510935353837155...

output:

30494216

result:

ok 1 number(s): "30494216"

Test #50:

score: 0
Accepted
time: 11ms
memory: 10312kb

input:

707923123776380648 960 191
707923123776375484 799176622
164813810270485419 975427804
446662266871612830 721645063
706273141785672657 596852756
707923108287090339 101641673
466130775646175913 938132930
141563786833129006 981855402
111394344057775227 983059268
707923119233185773 27527747
6649052793931...

output:

37261270

result:

ok 1 number(s): "37261270"

Subtask #7:

score: 12
Accepted

Dependency #3:

100%
Accepted

Dependency #5:

100%
Accepted

Test #51:

score: 12
Accepted
time: 254ms
memory: 26436kb

input:

571630416836886394 47168 0
96863681397862733 975125142
356044822253140262 598706048
515453346882217082 780566337
310612673285348975 628963074
470413750105710996 521531320
485023891192396182 511014543
294586905153825661 925671185
571630416738335094 158726562
185789055211250703 954614799
3548394816997...

output:

563260749

result:

ok 1 number(s): "563260749"

Test #52:

score: 0
Accepted
time: 212ms
memory: 27384kb

input:

841161310096886484 47782 0
695723253916094448 724478598
540665669817327612 824722094
841159307153505572 358568703
420009767990047350 208597811
841157041808575787 461740092
841153463198963867 569722258
841155889630106597 515332698
835476875635312659 636252803
841161310096575364 268569091
665233067738...

output:

178000363

result:

ok 1 number(s): "178000363"

Test #53:

score: 0
Accepted
time: 208ms
memory: 25744kb

input:

539025190773540771 46142 0
539025114552193483 750084891
539025146939174001 208399611
539025142948200821 59628495
539025167040882541 187485048
297804195276627820 596910027
539025036251289721 292620891
539025176171348121 25151122
419197658222546676 541151443
539025182999530881 170481735
94373350744432...

output:

792619156

result:

ok 1 number(s): "792619156"

Test #54:

score: 0
Accepted
time: 308ms
memory: 34212kb

input:

705921968914365511 47716 0
705921968910682250 37456241
216562629047838980 788958895
705921968888183480 220262214
504364558319371214 712517838
705921968912285852 63040139
559896530157610827 865295481
692795819065070003 265936336
705921968902391426 525007326
705921968898107858 563844710
45377210899051...

output:

441700676

result:

ok 1 number(s): "441700676"

Test #55:

score: 0
Accepted
time: 416ms
memory: 34036kb

input:

564133086769866350 48875 0
563437196556182544 261486038
560294783129522064 324772044
556631029930923984 145670740
559700141975322384 85009595
314575623929155476 914739751
557994542117070864 119723133
563970481727376144 4644345
556297791301355844 658135589
473151054735727950 815276832
549167714478150...

output:

310639483

result:

ok 1 number(s): "310639483"

Test #56:

score: 0
Accepted
time: 285ms
memory: 34236kb

input:

936756643107884507 47057 0
936756549937799391 463453118
936756642116110143 96749536
936756552075454317 459354765
936756643099480707 8057801
936756597512789337 306600323
936756596879434857 309660796
465274780883248915 884923508
936756624706549095 179625651
936756643107883335 82112034
8680557778246200...

output:

628129359

result:

ok 1 number(s): "628129359"

Test #57:

score: 0
Accepted
time: 311ms
memory: 35584kb

input:

702873086596726417 46921 0
702873084504467311 435498634
299151456816761100 696668178
702873086593780755 188996895
702873085139720895 378933418
287632236113773418 945140906
702873086596626031 8514228
381034645003012276 917283692
702873085223824163 371177051
480867097500933640 624812518
70287308659425...

output:

296470561

result:

ok 1 number(s): "296470561"

Test #58:

score: 0
Accepted
time: 315ms
memory: 29456kb

input:

696868150883245690 48306 0
476810224399322700 854659018
464195603276193600 304310171
446344869551578397 871173576
73772786710123200 427101535
499665574666792800 284452466
346762905048896444 928674821
283641472225843200 145545531
684797240141935200 12699482
263903781116001600 148139221
42026490439052...

output:

178187268

result:

ok 1 number(s): "178187268"

Test #59:

score: 0
Accepted
time: 288ms
memory: 27816kb

input:

995646392343469795 49194 0
995646392329767108 312459955
995646392334135924 245193472
995646392331093996 299744392
995646392321756100 363274045
968605994456210365 485812394
499093046036246318 925126426
995646392341599912 108726352
995646392333878812 250022020
728936689913383683 819169473
714935731010...

output:

664181186

result:

ok 1 number(s): "664181186"

Test #60:

score: 0
Accepted
time: 404ms
memory: 33260kb

input:

802473733444905042 48027 0
415952639582201792 589867404
802473733444442582 39725642
446316590121917984 571300735
22582790395893058 993586735
365938749924876688 605026635
802473733429621382 259044778
14458547092095008 673264904
430697237683964416 901111452
437186563439513194 897704884
802473733433003...

output:

291107795

result:

ok 1 number(s): "291107795"

Subtask #8:

score: 10
Accepted

Dependency #5:

100%
Accepted

Test #61:

score: 10
Accepted
time: 2553ms
memory: 58828kb

input:

716429171502522215 47121 48854
684206275836370608 1
447368400898092275 1
500447584334752997 1
380938825102517800 1
703571667242752149 1
432997187680148804 1
169070786477357537 1
702163195024687605 1
706006848814479885 1
714728181809868081 1
702992487375782988 1
695502249468972696 1
29949334130159091...

output:

358321674

result:

ok 1 number(s): "358321674"

Test #62:

score: 0
Accepted
time: 2336ms
memory: 58852kb

input:

760962402402047624 47788 46028
760962402400520977 1
146627560121093112 1
552500521368356496 1
609213278868935512 1
336266088659361952 1
556168263038283744 1
372691194708123248 1
542056449397110112 1
677262387740868256 1
760962402401092996 1
658355484638429264 1
760962402400992112 1
64514813498907734...

output:

397036874

result:

ok 1 number(s): "397036874"

Test #63:

score: 0
Accepted
time: 2618ms
memory: 69916kb

input:

823454131189228931 47545 47996
633913455457088435 1
823454131188293887 1
823453960526785252 1
295577193570436898 1
448054862139934560 1
823454131188121371 1
662676467650910604 1
823454131188972663 1
702788755769685000 1
823453314863152631 1
823453107324243081 1
593195757060130275 1
82345390310591764...

output:

556901026

result:

ok 1 number(s): "556901026"

Test #64:

score: 0
Accepted
time: 2533ms
memory: 58500kb

input:

790661905382541343 46638 46580
790661830315353694 1
628815916342495006 1
414195221334706964 1
761278128956231679 1
506248255650008574 1
504165239321589346 1
708623989919201733 1
537606289579523112 1
790661883086104374 1
790661830631248034 1
577869563291089149 1
790661889734095294 1
22748820983416533...

output:

923583785

result:

ok 1 number(s): "923583785"

Test #65:

score: 0
Accepted
time: 2437ms
memory: 68404kb

input:

543995107469111870 46815 49986
543995107427386090 1
543995107385280202 1
543995107360534954 1
543995107322490794 1
543995107359865494 1
543995107430990394 1
118258633661474253 1
543995107437907018 1
543995107400709066 1
543995107388815822 1
543995107403911386 1
514372106427243364 1
54399510735645175...

output:

549708819

result:

ok 1 number(s): "549708819"

Test #66:

score: 0
Accepted
time: 2807ms
memory: 65112kb

input:

973680848449912174 45809 48893
558451142980027913 1
973149521190732051 1
973151795384428051 1
730813052917184451 1
782733029576651051 1
973030580860431251 1
653086705192012191 1
885279135122797234 1
972841595364293651 1
940582507995263351 1
973068702032260451 1
762862562432814731 1
85928041435845971...

output:

760343391

result:

ok 1 number(s): "760343391"

Test #67:

score: 0
Accepted
time: 2170ms
memory: 69136kb

input:

769083325181598713 45572 45512
768897660622302008 1
769083325180938609 1
768647443362725330 1
768852015940427126 1
43555486635844404 1
768689595631618217 1
769075697253837284 1
768598532992141964 1
768929558164370306 1
769077417931272476 1
768791432304759608 1
461513625257788477 1
518464733738942569...

output:

724840598

result:

ok 1 number(s): "724840598"

Test #68:

score: 0
Accepted
time: 2632ms
memory: 59148kb

input:

989697766657099563 45914 49705
219852197404383689 1
491494304787067673 1
872190190190847836 1
887483404175496314 1
988437667010051631 1
988332948976172748 1
473918774016572392 1
73539620003504958 1
988923292997857377 1
142884498556990175 1
988698815467334790 1
936770813461610494 1
783682329635155073...

output:

478142716

result:

ok 1 number(s): "478142716"

Test #69:

score: 0
Accepted
time: 2364ms
memory: 60004kb

input:

508086302629220899 45255 46961
508086302479732309 1
508086302451729729 1
476932514196496909 1
508086302347313329 1
479954970836181675 1
459285673375846471 1
487091876268376921 1
322586470409639114 1
472604100878658625 1
420442380335293898 1
278461218906312954 1
480604960680766945 1
28492141885045535...

output:

647915375

result:

ok 1 number(s): "647915375"

Test #70:

score: 0
Accepted
time: 2747ms
memory: 60328kb

input:

608163868156115674 49705 47751
503333959958709384 1
421780903089450717 1
555039048741370741 1
532830641628222627 1
511986453645349407 1
542988393154824354 1
600140273623136626 1
412811087999765945 1
554352422959823718 1
594499283127331680 1
503907834436640092 1
608163868148396758 1
48888827368907290...

output:

64753822

result:

ok 1 number(s): "64753822"

Subtask #9:

score: 0
Time Limit Exceeded

Dependency #1:

100%
Accepted

Dependency #2:

100%
Accepted

Dependency #3:

100%
Accepted

Dependency #4:

100%
Accepted

Dependency #5:

100%
Accepted

Dependency #6:

100%
Accepted

Dependency #7:

100%
Accepted

Dependency #8:

100%
Accepted

Test #71:

score: 0
Time Limit Exceeded

input:

679891637637612258 50000 50000
259695496911122585 3
420196140727489673 4
679891637637612256 2027
679891637637612255 3027
679891637637612254 4027
679891637637612253 5027
679891637637612252 6027
679891637637612251 7027
679891637637612250 8027
679891637637612249 9027
679891637637612248 10027
6798916376...

output:


result: