QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#768451#9613. 计算几何cmk666100 ✓1592ms236680kbC++2310.7kb2024-11-21 10:47:342024-11-21 10:47:36

Judging History

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

  • [2024-11-21 10:47:36]
  • 评测
  • 测评结果:100
  • 用时:1592ms
  • 内存:236680kb
  • [2024-11-21 10:47:34]
  • 提交

answer

/*  _              _     _                                             _       __      __      __   
   / \     _   _  | |_  | |__     ___    _ __   _    ___   _ __ ___   | | __  / /_    / /_    / /_  
  / _ \   | | | | | __| | '_ \   / _ \  | '__| (_)  / __| | '_ ` _ \  | |/ / | '_ \  | '_ \  | '_ \ 
 / ___ \  | |_| | | |_  | | | | | (_) | | |     _  | (__  | | | | | | |   <  | (_) | | (_) | | (_) |
/_/   \_\  \__,_|  \__| |_| |_|  \___/  |_|    (_)  \___| |_| |_| |_| |_|\_\  \___/   \___/   \___/ 
[Created Time:       2024-11-21 10:36:24]
[Last Modified Time: 2024-11-21 10:47:26] */
#ifdef LOCAL
#include<bits/stdc++.h>
#include"debug.h"
#else
#pragma GCC optimize("Ofast", "unroll-loops")
#include<bits/stdc++.h>
#define D(...) ((void)0)
#endif
using namespace std; using ll = long long;
#define For(i, j, k) for ( int i = (j) ; i <= (k) ; i++ )
#define Fol(i, j, k) for ( int i = (j) ; i >= (k) ; i-- )
namespace FastIO
{
#define USE_FastIO
// ------------------------------
// #define DISABLE_MMAP
// ------------------------------
#if ( defined(LOCAL) || defined(_WIN32) ) && !defined(DISABLE_MMAP)
#define DISABLE_MMAP
#endif
#ifdef LOCAL
	inline void _chk_i() {}
	inline char _gc_nochk() { return getchar(); }
	inline char _gc() { return getchar(); }
	inline void _chk_o() {}
	inline void _pc_nochk(char c) { putchar(c); }
	inline void _pc(char c) { putchar(c); }
	template < int n > inline void _pnc_nochk(const char *c) { for ( int i = 0 ; i < n ; i++ ) putchar(c[i]); }
#else
#ifdef DISABLE_MMAP
	inline constexpr int _READ_SIZE = 1 << 18; inline static char _read_buffer[_READ_SIZE + 40], *_read_ptr = nullptr, *_read_ptr_end = nullptr; static inline bool _eof = false;
	inline void _chk_i() { if ( __builtin_expect(!_eof, true) && __builtin_expect(_read_ptr_end - _read_ptr < 40, false) ) { int sz = _read_ptr_end - _read_ptr; if ( sz ) memcpy(_read_buffer, _read_ptr, sz); char *beg = _read_buffer + sz; _read_ptr = _read_buffer, _read_ptr_end = beg + fread(beg, 1, _READ_SIZE, stdin); if ( __builtin_expect(_read_ptr_end != beg + _READ_SIZE, false) ) _eof = true, *_read_ptr_end = EOF; } }
	inline char _gc_nochk() { return __builtin_expect(_eof && _read_ptr == _read_ptr_end, false) ? EOF : *_read_ptr++; }
	inline char _gc() { _chk_i(); return _gc_nochk(); }
#else
#include<sys/mman.h>
#include<sys/stat.h>
	inline static char *_read_ptr = (char *)mmap(nullptr, [] { struct stat s; return fstat(0, &s), s.st_size; } (), 1, 2, 0, 0);
	inline void _chk_i() {}
	inline char _gc_nochk() { return *_read_ptr++; }
	inline char _gc() { return *_read_ptr++; }
#endif
	inline constexpr int _WRITE_SIZE = 1 << 18; inline static char _write_buffer[_WRITE_SIZE + 40], *_write_ptr = _write_buffer;
	inline void _chk_o() { if ( __builtin_expect(_write_ptr - _write_buffer > _WRITE_SIZE, false) ) fwrite(_write_buffer, 1, _write_ptr - _write_buffer, stdout), _write_ptr = _write_buffer; }
	inline void _pc_nochk(char c) { *_write_ptr++ = c; }
	inline void _pc(char c) { *_write_ptr++ = c, _chk_o(); }
	template < int n > inline void _pnc_nochk(const char *c) { memcpy(_write_ptr, c, n), _write_ptr += n; }
	inline struct _auto_flush { inline ~_auto_flush() { fwrite(_write_buffer, 1, _write_ptr - _write_buffer, stdout); } } _auto_flush;
#endif
#define println println_ // don't use C++23 std::println
	template < class T > inline constexpr bool _is_signed = numeric_limits < T >::is_signed;
	template < class T > inline constexpr bool _is_unsigned = numeric_limits < T >::is_integer && !_is_signed < T >;
#if __SIZEOF_LONG__ == 64
	template <> inline constexpr bool _is_signed < __int128 > = true;
	template <> inline constexpr bool _is_unsigned < __uint128_t > = true;
#endif
	inline bool _isgraph(char c) { return c >= 33; }
	inline bool _isdigit(char c) { return 48 <= c && c <= 57; } // or faster, remove c <= 57
	constexpr struct _table {
#ifndef LOCAL
	int i[65536];
#endif
	char o[40000]; constexpr _table() :
#ifndef LOCAL
	i{},
#endif
	o{} {
#ifndef LOCAL
	for ( int x = 0 ; x < 65536 ; x++ ) i[x] = -1; for ( int x = 0 ; x <= 9 ; x++ ) for ( int y = 0 ; y <= 9 ; y++ ) i[x + y * 256 + 12336] = x * 10 + y;
#endif
	for ( int x = 0 ; x < 10000 ; x++ ) for ( int y = 3, z = x ; ~y ; y-- ) o[x * 4 + y] = z % 10 + 48, z /= 10; } } _table;
	template < class T, int digit > inline constexpr T _pw10 = 10 * _pw10 < T, digit - 1 >;
	template < class T > inline constexpr T _pw10 < T, 0 > = 1;
	inline void read(char &c) { do c = _gc(); while ( !_isgraph(c) ); }
	inline void read_cstr(char *s) { char c = _gc(); while ( !_isgraph(c) ) c = _gc(); while ( _isgraph(c) ) *s++ = c, c = _gc(); *s = 0; }
	inline void read(string &s) { char c = _gc(); s.clear(); while ( !_isgraph(c) ) c = _gc(); while ( _isgraph(c) ) s.push_back(c), c = _gc(); }
	template < class T, bool neg >
#ifndef LOCAL
	__attribute__((no_sanitize("undefined")))
#endif
	inline void _read_int_suf(T &x) { _chk_i(); char c; while
#ifndef LOCAL
	( ~_table.i[*reinterpret_cast < unsigned short *& >(_read_ptr)] ) if constexpr ( neg ) x = x * 100 - _table.i[*reinterpret_cast < unsigned short *& >(_read_ptr)++]; else x = x * 100 + _table.i[*reinterpret_cast < unsigned short *& >(_read_ptr)++]; if
#endif
	( _isdigit(c = _gc_nochk()) ) if constexpr ( neg ) x = x * 10 - ( c & 15 ); else x = x * 10 + ( c & 15 ); }
	template < class T, enable_if_t < _is_signed < T >, int > = 0 > inline void read(T &x) { char c; while ( !_isdigit(c = _gc()) ) if ( c == 45 ) { _read_int_suf < T, true >(x = -( _gc_nochk() & 15 )); return; } _read_int_suf < T, false >(x = c & 15); }
	template < class T, enable_if_t < _is_unsigned < T >, int > = 0 > inline void read(T &x) { char c; while ( !_isdigit(c = _gc()) ); _read_int_suf < T, false >(x = c & 15); }
	inline void write(bool x) { _pc(x | 48); }
	inline void write(char c) { _pc(c); }
	inline void write_cstr(const char *s) { while ( *s ) _pc(*s++); }
	inline void write(const string &s) { for ( char c : s ) _pc(c); }
	template < class T, bool neg, int digit > inline void _write_int_suf(T x) { if constexpr ( digit == 4 ) _pnc_nochk < 4 >(_table.o + ( neg ? -x : x ) * 4); else _write_int_suf < T, neg, digit / 2 >(x / _pw10 < T, digit / 2 >), _write_int_suf < T, neg, digit / 2 >(x % _pw10 < T, digit / 2 >); }
	template < class T, bool neg, int digit > inline void _write_int_pre(T x) { if constexpr ( digit <= 4 ) if ( digit >= 3 && ( neg ? x <= -100 : x >= 100 ) ) if ( digit >= 4 && ( neg ? x <= -1000 : x >= 1000 ) ) _pnc_nochk < 4 >(_table.o + ( neg ? -x : x ) * 4); else _pnc_nochk < 3 >(_table.o + ( neg ? -x : x ) * 4 + 1); else if ( digit >= 2 && ( neg ? x <= -10 : x >= 10 ) ) _pnc_nochk < 2 >(_table.o + ( neg ? -x : x ) * 4 + 2); else _pc_nochk(( neg ? -x : x ) | 48); else { constexpr int cur = 1 << __lg(digit - 1); if ( neg ? x <= -_pw10 < T, cur > : x >= _pw10 < T, cur > ) _write_int_pre < T, neg, digit - cur >(x / _pw10 < T, cur >), _write_int_suf < T, neg, cur >(x % _pw10 < T, cur >); else _write_int_pre < T, neg, cur >(x); } }
	template < class T, enable_if_t < _is_signed < T >, int > = 0 > inline void write(T x) { if ( x >= 0 ) _write_int_pre < T, false, numeric_limits < T >::digits10 + 1 >(x); else _pc_nochk(45), _write_int_pre < T, true, numeric_limits < T >::digits10 + 1 >(x); _chk_o(); }
	template < class T, enable_if_t < _is_unsigned < T >, int > = 0 > inline void write(T x) { _write_int_pre < T, false, numeric_limits < T >::digits10 + 1 >(x), _chk_o(); }
	template < size_t N, class ...T > inline void _read_tuple(tuple < T... > &x) { read(get < N >(x)); if constexpr ( N + 1 != sizeof...(T) ) _read_tuple < N + 1, T... >(x); }
	template < size_t N, class ...T > inline void _write_tuple(const tuple < T... > &x) { write(get < N >(x)); if constexpr ( N + 1 != sizeof...(T) ) _pc(32), _write_tuple < N + 1, T... >(x); }
	template < class ...T > inline void read(tuple < T... > &x) { _read_tuple < 0, T... >(x); }
	template < class ...T > inline void write(const tuple < T... > &x) { _write_tuple < 0, T... >(x); }
	template < class T1, class T2 > inline void read(pair < T1, T2 > &x) { read(x.first), read(x.second); }
	template < class T1, class T2 > inline void write(const pair < T1, T2 > &x) { write(x.first), _pc(32), write(x.second); }
	template < class T > inline auto read(T &x) -> decltype(x.read(), void()) { x.read(); }
	template < class T > inline auto write(const T &x) -> decltype(x.write(), void()) { x.write(); }
	template < class T1, class ...T2 > inline void read(T1 &x, T2 &...y) { read(x), read(y...); }
	template < class ...T > inline void read_cstr(char *x, T *...y) { read_cstr(x), read_cstr(y...); }
	template < class T1, class ...T2 > inline void write(const T1 &x, const T2 &...y) { write(x), write(y...); }
	template < class ...T > inline void write_cstr(const char *x, const T *...y) { write_cstr(x), write_cstr(y...); }
	template < class T > inline void print(const T &x) { write(x); }
	inline void print_cstr(const char *x) { write_cstr(x); }
	template < class T1, class ...T2 > inline void print(const T1 &x, const T2 &...y) { write(x), _pc(32), print(y...); }
	template < class ...T > inline void print_cstr(const char *x, const T *...y) { write_cstr(x), _pc(32), print_cstr(y...); }
	inline void println() { _pc(10); }
	inline void println_cstr() { _pc(10); }
	template < class ...T > inline void println(const T &...x) { print(x...), _pc(10); }
	template < class ...T > inline void println_cstr(const T *...x) { print_cstr(x...), _pc(10); }
}	using FastIO::read, FastIO::read_cstr, FastIO::write, FastIO::write_cstr, FastIO::println, FastIO::println_cstr;
constexpr ll inf = numeric_limits < ll >::max() >> 1;
int n, q, lp, rp; ll mn, o, ans[1000009]; vector < tuple < int, int, int > > ps, qs;
inline void slv(const auto &ps, const auto &qs)
{
	if ( (int)ps.size() < 2 || qs.empty() ) return;
	mn = inf;
	For(i, 0, (int)ps.size() - 1) For(j, max(0, i - 10), i - 1)
		if ( ( o = (ll)abs(get<0>(ps[i]) - get<0>(ps[j])) + abs(get<1>(ps[i]) - get<1>(ps[j])) ) < mn )
			mn = o, tie(lp, rp) = minmax(get<2>(ps[i]), get<2>(ps[j]));
	vector < tuple < int, int, int > > psl, psr, qsl, qsr;
	for ( auto [x, y, i] : ps )
	{
		if ( i < rp ) psl.emplace_back(x, y, i);
		if ( i > lp ) psr.emplace_back(x, y, i);
	}
	for ( auto [l, r, i] : qs ) if ( l <= lp && rp <= r ) ans[i] = mn;
								else if ( r < rp ) qsl.emplace_back(l, r, i);
								else if ( l > lp ) qsr.emplace_back(l, r, i);
	slv(psl, qsl), slv(psr, qsr);
}
int main()
{
	read(n, q), ps.resize(n), qs.resize(q);
	For(i, 1, n) read(get<0>(ps[i - 1]), get<1>(ps[i - 1])), get<2>(ps[i - 1]) = i;
	For(i, 1, q) read(get<0>(qs[i - 1]), get<1>(qs[i - 1])), get<2>(qs[i - 1]) = i;
	sort(ps.begin(), ps.end()), slv(ps, qs);
	For(i, 1, q) println(ans[i]);
	return 0;
}
// 想上GM捏 想上GM捏 想上GM捏 想上GM捏 想上GM捏
// 伊娜可爱捏 伊娜贴贴捏

Details

Tip: Click on the bar to expand more detailed information

Pretests


Final Tests

Test #1:

score: 4
Accepted
time: 2ms
memory: 6088kb

input:

2000 2000
983850330 731103020
513263912 234227610
788795134 228585831
-983909940 -814082030
-582261039 729875680
617950974 -259602422
-355311469 355769341
-394119311 -493842356
899026446 -402238603
-300533665 433674923
946553927 26786776
46270288 43713228
-838909861 427788951
863776211 691106038
-93...

output:

511457
511457
1660620
25525096
1660620
511457
9525149
57819607
1660620
1660620
511457
1660620
511457
511457
1660620
7013046
511457
1660620
7013046
1660620
1660620
511457
3297708
1660620
1660620
3297708
1660620
1660620
1660620
3297708
4830700
8953781
511457
511457
1660620
1660620
1660620
8953781
5114...

result:

ok 2000 numbers

Test #2:

score: 4
Accepted
time: 2ms
memory: 3920kb

input:

2000 2000
407439483 0
-924180082 0
534637753 0
-836707453 0
-385278990 0
90204634 0
454360393 0
-895242427 0
-112231538 0
-323497705 0
368203671 0
-124641980 0
183953551 0
596609116 0
666423112 0
706701157 0
988299741 0
-248457324 0
-507127215 0
610030981 0
356918300 0
110156240 0
317203493 0
754544...

output:

1043672
417
1362
417
1362
1362
417
6857
417
2658
90109
1021
417
2658
269047
2241
2241
417
417
2658
2658
417
417
14980
1362
1362
90109
1362
56414
1021
207612
2658
1021
417
417
1362
1362
417
417
1021
1362
40782
417
1362
1021
417
417
417
2241
6857
1021
1021
417
2658
1021
417
1362
417
417
417
417
1362
4...

result:

ok 2000 numbers

Test #3:

score: 4
Accepted
time: 23ms
memory: 7032kb

input:

20000 20000
-721847248 671834627
-750033826 -893098471
358123311 740735694
-15749050 352553172
331628828 285387115
-870680297 30680547
747479743 495644671
-24785538 458380663
-49052185 540025540
192115219 694762799
-582891748 -643029079
-356894103 726491498
213744952 457769371
-357728988 745592631
-...

output:

384993
109364
882199
184464
184464
109364
109364
109364
109364
109364
109364
264720
384993
109364
109364
184464
184464
109364
109364
109364
109364
184464
184464
109364
264720
364852
264720
109364
109364
364852
109364
364852
184464
184464
109364
264720
1619872
364852
109364
184464
478876
109364
10936...

result:

ok 20000 numbers

Test #4:

score: 4
Accepted
time: 23ms
memory: 7476kb

input:

20000 20000
-856287 613193
884980 313749
-51917 -595036
-515889 732611
768011 201825
685038 -690361
-825296 610210
693313 378198
153998 -220528
-881367 -427847
-762386 726194
-882783 -396975
-585188 -646369
852468 -769564
845740 446417
-272832 806448
-23829 -843528
-290649 -509815
183302 929309
-810...

output:

398
441
17
254
17
1529
17
263
254
263
263
263
17
17
309
263
398
263
263
509
17
441
263
17
17
263
509
17
17
441
17
17
477
263
377
263
309
17
254
17
263
263
398
17
263
1022
477
17
17
377
477
415
17
1059
377
256
256
263
17
254
17
709
17
7667
263
17
271
17
17
263
271
398
398
377
17
17
17
441
17
17
263
2...

result:

ok 20000 numbers

Test #5:

score: 4
Accepted
time: 22ms
memory: 7320kb

input:

20000 20000
272933 -400117
36074 -350576
-180416 245927
-152816 -532917
-815869 -121672
900928 561561
696604 -34106
281988 -30073
37999 -748187
-260504 367199
-254538 984542
-929979 -597816
735632 -731486
-88688 -820300
-180173 516379
319782 -306180
461815 88179
-863913 497662
-972928 920984
670858 ...

output:

663
321
166
497
259
183
259
259
166
166
183
166
259
166
949
166
259
559
166
321
166
1215
166
183
1131
1215
259
183
919
166
1131
166
905
166
624
166
718
3226
166
166
624
321
259
166
166
259
663
259
183
2887
718
554
166
183
259
166
166
183
554
183
166
321
1860
166
166
259
259
166
259
166
259
3588
166
...

result:

ok 20000 numbers

Test #6:

score: 4
Accepted
time: 21ms
memory: 6768kb

input:

20000 20000
961714 0
-256591 0
858025 0
302536 0
989232 0
921482 0
132252 0
-687494 0
976712 0
584368 0
-379471 0
-368374 0
-421478 0
-269707 0
-840836 0
683604 0
-233785 0
-509259 0
691924 0
-326966 0
699666 0
-602646 0
-394566 0
-762188 0
-721221 0
110375 0
123249 0
-679471 0
476495 0
-247891 0
-6...

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
0
0
0
0
0
0
0
0
0
0
0
8
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
0
0
0
0
1
0
0
0
36
0
847
0
0
0
0
3
0
0
0
0
0
0
0
0
0
0
0
10
0
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
4
605
11
0
0
1
0
0
0
0
0
0
0
0
65
0
0
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

result:

ok 20000 numbers

Test #7:

score: 4
Accepted
time: 22ms
memory: 8620kb

input:

20000 20000
931651 0
-193344 0
-459921 0
-208681 0
265915 0
221047 0
-976889 0
836902 0
-128302 0
775194 0
523077 0
-398264 0
296667 0
-324286 0
477274 0
226741 0
-70369 0
627346 0
-81394 0
525865 0
454142 0
708462 0
-629738 0
-171617 0
-745312 0
-647420 0
-249238 0
-911374 0
255729 0
565402 0
-3974...

output:

1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
3
0
0
0
0
0
0
0
0
0
0
5
227
0
0
0
0
0
0
1
3
0
0
0
0
0
0
1
41
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
18
0
0
0
0
0
0
0
0
18
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
52
0
0
0
0
0
0
0
0
0
0
0
306
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
...

result:

ok 20000 numbers

Test #8:

score: 4
Accepted
time: 18ms
memory: 6780kb

input:

20000 20000
286328653 0
-436132873 0
-950502327 0
62507734 0
410183824 0
-244422860 0
-89619254 0
-36224025 0
987264815 0
-366170043 0
789288990 0
595133547 0
129243363 0
480765515 0
-367270251 0
85317458 0
-717834130 0
990039646 0
601945059 0
979377776 0
487802144 0
-543661591 0
-649863532 0
530289...

output:

1
1
469
1564
1668
1
4
1
1659
1
4
1
1
4
1
14
1
428
4
1
1
32
1
13372
4
1
688
4
7
4
4
7
1
7
1
1
1
1
1
37
644
437
91
7
18
104
1
1
1
1
18
1
37
14
37
1
1
306
18
1
7
1601
45
14
14
1
1
1244
32
553
1
37
1225
1
37
1
1
7
1
1
1
4
7
37
14
7
1
1
1
23657
1
104
17499
18
1
1
1
1
37
1
1
14
1
4
7
37
484
1
1
1
836
1
1
...

result:

ok 20000 numbers

Test #9:

score: 4
Accepted
time: 260ms
memory: 44116kb

input:

200000 200000
-412960500 577830338
99802584 -136950865
-950307156 -859369040
793568959 -565815756
411737945 -479377622
569675957 -601905445
-417176412 -729638186
200119881 -430545998
-86043427 969867029
64175162 -427861527
83451953 -756750354
-748032722 43908052
418515829 494502750
346664686 9215021...

output:

9239
9239
9239
9239
9239
75958
648460
9239
81454
9239
9239
9239
35946
9239
9239
30950
19566
9239
9239
9239
9239
27060
30950
9239
19566
19634
35946
27060
35946
9239
35946
27060
9239
9239
59843
9239
9239
9239
9239
9239
19634
9239
9239
35946
9239
9239
9239
84971
344383
9239
9239
19634
19634
59843
9239
...

result:

ok 200000 numbers

Test #10:

score: 4
Accepted
time: 226ms
memory: 37444kb

input:

200000 200000
215020 -29462
152216 -199822
-604632 -191567
10263 -830451
-89159 -121408
-881329 -921244
-809798 -903639
29060 -438373
-393896 -438778
79484 803288
646060 323407
-150152 23631
-509647 -88435
-772163 923612
-832132 -270978
650123 -731403
997559 -457855
797171 863407
366847 -915734
-700...

output:

3
3
3
60
3
3
28
3
15
3
31
60
3
3
3
3
3
3
3
3
31
15
3
28
3
3
28
17
31
3
283
120
3
3
239
3
3
15
120
3
15
134
15
15
120
3
3
3
15
15
3
3
15
3
3
3
109
3
27
3
3
15
3
3
3
3
3
90
2780
28
3
3
3
3
3
3
15
3
752
3
3
15
3
66
31
3
3
3
3
16
3
3
3
60
15
109
45
3
105
3
3
15
3
105
3
3
3
3
3
27
30
15
3
3
15
3
3
15
15
...

result:

ok 200000 numbers

Test #11:

score: 4
Accepted
time: 230ms
memory: 41740kb

input:

200000 200000
-814016 -440530
-988229 -214220
-825745 -268031
808279 -507843
-365671 559807
-823503 84191
685041 -755331
-379355 -288337
-730097 156308
-49982 -920817
135131 710420
786978 14054
-877243 607279
-61488 -541803
839910 -778520
498514 -990675
408344 758599
-596998 201097
-711216 615872
60...

output:

6
10
19
77
12
10
12
12
19
71
51
6
6
36
178
417
10
6
36
318
71
6
12
6
51
6
6
12
66
12
6
10
107
77
6
6
19
267
111
77
10
12
19
35
10
12
24
6
71
6
6
6
10
19
35
10
10
6
6
12
71
36
6
6
10
10
10
10
71
10
111
107
35
6
19
12
77
6
178
19
10
6
10
12
10
112
12
111
538
12
12
10
6
6
1807
66
6
10
12
12
10
12
6
12
...

result:

ok 200000 numbers

Test #12:

score: 4
Accepted
time: 218ms
memory: 35740kb

input:

200000 200000
492262 0
767261 0
-49558 0
763447 0
-766015 0
305219 0
216950 0
309815 0
-563799 0
-576993 0
807708 0
-28765 0
805496 0
-792510 0
452313 0
636912 0
251743 0
367464 0
460580 0
731290 0
-899643 0
35424 0
900164 0
-627830 0
-200278 0
-364485 0
85580 0
348513 0
-445170 0
782325 0
867546 0
...

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

result:

ok 200000 numbers

Test #13:

score: 4
Accepted
time: 212ms
memory: 38816kb

input:

200000 200000
547911 0
477311 0
650541 0
-105453 0
626756 0
-374148 0
-185598 0
-740854 0
845506 0
692548 0
-87545 0
-338111 0
-672163 0
348336 0
790086 0
588112 0
874537 0
-165894 0
602594 0
-951962 0
121709 0
597190 0
-231436 0
954727 0
874009 0
923477 0
176425 0
-953583 0
107836 0
-354119 0
80494...

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

result:

ok 200000 numbers

Test #14:

score: 4
Accepted
time: 227ms
memory: 40976kb

input:

200000 200000
-317746997 0
-151278487 0
231239102 0
-333682162 0
817071806 0
778079717 0
-29317929 0
-796844681 0
-969298078 0
-290624098 0
-687507332 0
967855359 0
-200682268 0
446953365 0
829160344 0
431722814 0
-321478842 0
500793767 0
-958916933 0
-993173724 0
-583938136 0
-621654506 0
540155031...

output:

0
75
0
13
15
0
7
0
0
5471
0
0
0
0
2
32
1
0
0
0
0
0
0
0
0
0
4
0
0
0
0
0
0
7
0
0
0
0
0
0
0
28
0
0
0
0
0
0
0
0
0
0
0
5
0
0
0
0
0
0
0
2
0
0
0
0
0
0
0
0
85
0
3
9
0
0
0
0
0
8
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
0
0
0
0
0
0
13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
0
87
0
0
1
0
0
0
0
0
0
29
5
0
101976
0
0
5
0
0
0
7...

result:

ok 200000 numbers

Test #15:

score: 4
Accepted
time: 44ms
memory: 72908kb

input:

2000 1000000
600102029 78163345
623529642 -781629210
-194743627 856505922
132730843 -866898111
496967234 357290802
424803615 -817449125
326888043 973054140
682875209 743038131
659124372 893679753
-415512262 835204413
-753019068 -821982592
650486625 656222368
765610921 -158965479
-131326155 454415998...

output:

3681425
3248740
8287314
3248740
2994042
2591533
10623830
2994042
55536188
3248740
2591533
181013291
2591533
2591533
3248740
9585148
4922188
4587911
2591533
3248740
2994042
2994042
8443551
681466
21601433
2591533
2994042
2994042
2591533
2591533
681466
2591533
681466
3248740
681466
23886441
2994042
45...

result:

ok 1000000 numbers

Test #16:

score: 4
Accepted
time: 56ms
memory: 60060kb

input:

2000 1000000
172304227 0
104292738 0
-257051223 0
-21999534 0
-574879748 0
-574439539 0
-947027598 0
765205348 0
195088335 0
406074782 0
75136395 0
227990070 0
900067610 0
675451839 0
804606264 0
556516588 0
-511265459 0
510580926 0
863647316 0
807267358 0
-778168632 0
127848817 0
255183075 0
-60073...

output:

169
993
169
98
12442
10743
736
10743
736
12442
12442
993
993
2714
736
98
27403
736
12442
1624037
98
993
10743
736
12442
10743
98
19028
736
736
2714
12442
173
993
2714
169
2714
76324
116236
736
2714
173
993
993
993
10743
10743
10743
993
307731
993
98
98
2714
993
99994
72535
98
736
736
12442
736
13587...

result:

ok 1000000 numbers

Test #17:

score: 4
Accepted
time: 216ms
memory: 117780kb

input:

1000000 10
156999516 -24390575
-347759760 638897014
-102812461 325031686
668597244 262829264
678216489 165516603
621656879 -412885032
233438419 931865318
709921083 -313209071
389603839 76036576
-769757796 359645480
-100357260 928717563
709905946 839359128
233518030 -695740543
524417586 -804059937
-4...

output:

6232
1308
13064
2742
1308
24817
2742
10027
15715
2742

result:

ok 10 numbers

Test #18:

score: 4
Accepted
time: 268ms
memory: 147880kb

input:

1000000 10
281115 207197
-791397 227390
-769663 849805
-689936 477469
-251524 174662
189816 721806
-579178 -339234
993809 -705268
-690664 35222
-298116 -663820
-321165 -327572
-609151 166540
799070 -156124
-305786 89239
53446 -399972
845917 137485
316083 266638
-720291 -915315
-706115 135108
-161326...

output:

152
3
7
3
3
7
21
6
62
5

result:

ok 10 numbers

Test #19:

score: 4
Accepted
time: 283ms
memory: 140652kb

input:

1000000 10
370517413 0
607064501 0
198217472 0
143369676 0
627031881 0
-242777381 0
-122948696 0
334651705 0
754835147 0
-975826131 0
-3570204 0
136544599 0
519231560 0
-21309928 0
-647797468 0
728822996 0
-239842256 0
854368498 0
-555223024 0
-177243458 0
-606866771 0
867321201 0
983555681 0
753390...

output:

0
2
0
0
0
0
0
0
0
0

result:

ok 10 numbers

Test #20:

score: 4
Accepted
time: 1592ms
memory: 218488kb

input:

1000000 1000000
-565158168 192228664
-60734026 -876227887
169956757 458933534
415705153 359751682
706646043 -267237804
-785235125 -286053701
-810363619 -883277015
-917766646 796218920
568429513 157525175
652148934 -563141041
101229780 387951397
138582181 234580165
989042915 303473055
848403115 67207...

output:

1446
4102
34992
12330
1832
15207
12031
4102
5987
1446
1832
109052
1832
3704
1832
1446
1446
10051
1832
45961
12330
4102
17765
1832
1446
12330
1832
18835
1832
1832
1446
1446
1832
14538
3704
1832
1832
24021
3704
7520
1832
1446
1832
88230
4102
5987
1446
18835
3704
660965
1446
1832
1446
1446
1446
1832
18...

result:

ok 1000000 numbers

Test #21:

score: 4
Accepted
time: 1564ms
memory: 236680kb

input:

1000000 1000000
937028 -142721
470057 -596447
805603 -653737
422827 -146839
-134461 -284129
-740611 -822073
129788 -760939
189012 76048
-649576 825583
376935 955180
-675052 -614100
217445 -951905
463589 -489265
309830 -722532
510085 591599
-961137 67299
-817170 188112
338633 -558591
-571501 -205785
...

output:

157
2
2
9
5
5
12
5
155
2
20
2
6
17
15
26
5
2
12
2
6
5
2
5
5
5
5
5
15
10
17
5
2
5
5
9
5
5
5
5
11
39
5
5
5
5
5
5
2
5
5
5
27
5
5
2
5
9
2
5
5
5
5
5
2
6
5
36
20
5
52
2
5
5
9
5
2
5
5
5
5
5
17
2
5
5
5
5
5
11
15
5
15
2
5
5
5
12
5
2
26
12
5
39
5
27
467
15
5
5
5
5
5
2
14
5
5
5
5
10
5
2
22
37
5
5
17
5
2
136
5
...

result:

ok 1000000 numbers

Test #22:

score: 4
Accepted
time: 1285ms
memory: 151452kb

input:

1000000 1000000
556639 -726845
488045 -320786
907001 -483744
941440 533716
-722534 856343
-338618 616639
491388 733720
-416677 107094
108121 465292
-123127 350855
657412 326868
-943626 -335813
-502533 257525
56288 -494808
-248448 -317412
463444 -822305
686331 178764
-255923 18808
-520494 -446761
624...

output:

2
1
1
1
5
1
1
2
1
1
5
1
5
2
14
1
1
1
1
2
22
36
5
1
1
1
1
1
5
212
19
22
1
2
1
5
3
1
1
22
1
1
5
1
1
5
1
9
5
11
5
1
1
2
5
1
11
1
19
1
11
2
5
1
1
19
1
1
1
1
1
5
2
5
1
1
1
1
1
9
1
1
1
1
5
1
2
5
1
340
1
1
1
1
9
1
1
14
1
1
1
1
5
1
5
1
1
1
14
1
2
1
3
5
1
3
9
2
1
9
11
1
1
5
1
1
1
1
2
9
1
5
1
1
2
5
2
1
9
19
5...

result:

ok 1000000 numbers

Test #23:

score: 4
Accepted
time: 1334ms
memory: 216260kb

input:

1000000 1000000
-542377 0
80556 0
-734137 0
-588964 0
255112 0
598605 0
-363464 0
-703421 0
157594 0
-98285 0
799038 0
897889 0
-518690 0
-303647 0
-503359 0
166055 0
-173378 0
568761 0
-839895 0
-125384 0
-113615 0
-926581 0
-597497 0
865459 0
271137 0
779200 0
-589752 0
695449 0
-633220 0
477974 0...

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

result:

ok 1000000 numbers

Test #24:

score: 4
Accepted
time: 1329ms
memory: 154720kb

input:

1000000 1000000
475716 0
733854 0
-670602 0
-495883 0
879413 0
-549166 0
395637 0
-922358 0
-95497 0
261093 0
-855001 0
-232761 0
839785 0
415412 0
456189 0
487755 0
951642 0
68750 0
-207887 0
108335 0
73919 0
-829879 0
-521857 0
-235996 0
-474559 0
50128 0
599195 0
-72168 0
454461 0
384522 0
-27507...

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

result:

ok 1000000 numbers

Test #25:

score: 4
Accepted
time: 1370ms
memory: 205188kb

input:

1000000 1000000
-647194312 0
923266193 0
311967052 0
26202656 0
145325407 0
-363221031 0
322109698 0
400374410 0
-666477923 0
-803868087 0
-739610118 0
941620833 0
335162000 0
-343764277 0
-854360295 0
354763517 0
-559596318 0
-857042621 0
638986823 0
-794261929 0
137855671 0
317157550 0
942335473 0...

output:

1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
11
0
0
1916
0
0
0
0
0
0
27
0
7
0
0
0
0
205
0
0
0
88
0
0
0
...

result:

ok 1000000 numbers