QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#168784#6304. RectangleExplodingKonjacRE 2811ms47632kbC++1711.5kb2023-09-08 21:57:342023-09-08 21:57:35

Judging History

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

  • [2023-09-08 21:57:35]
  • 评测
  • 测评结果:RE
  • 用时:2811ms
  • 内存:47632kb
  • [2023-09-08 21:57:34]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
#define OPENIOBUF

namespace FastIO
{

class FastIOBase
{
 protected:
#ifdef OPENIOBUF
	static const int BUFSIZE=1<<16;
	char buf[BUFSIZE+1];
	int buf_p=0;
#endif
	FILE *target;
	FastIOBase(FILE *f): target(f){}
	~FastIOBase()=default;
 public:
#ifdef OPENIOBUF
	virtual void flush()=0;
#endif
};

class FastOutput final: public FastIOBase
{
 private:
	void __putc(char x)
	{
#ifdef OPENIOBUF
		if(buf[buf_p++]=x,buf_p==BUFSIZE) flush();
#else
		putc(x,target);
#endif
	}
	template<typename T>
	void __write(T x)
	{
		char stk[64],*top=stk;
		if(x<0) return __putc('-'),__write(-x);
		do *(top++)=x%10,x/=10; while(x);
		for(;top!=stk;__putc(*(--top)+'0'));
	}
 public:
	FastOutput(FILE *f=stdout): FastIOBase(f) {}
#ifdef OPENIOBUF
	~FastOutput() { flush(); }
	void flush() { fwrite(buf,1,buf_p,target),buf_p=0; }
#endif
	FastOutput &operator <<(char x)
	{ return __putc(x),*this; }
	FastOutput &operator <<(const char *s)
	{ for(;*s;__putc(*(s++)));return *this; }
	FastOutput &operator <<(const std::string &s)
	{ return (*this)<<s.c_str(); }
	template<typename T>
	std::enable_if_t<std::is_integral<T>::value,FastOutput&> operator <<(const T &x)
	{ return __write(x),*this; }
	template<typename ...T>
	void writesp(const T &...x)
	{ std::initializer_list<int>{(this->operator<<(x),__putc(' '),0)...}; }
	template<typename ...T>
	void writeln(const T &...x)
	{ std::initializer_list<int>{(this->operator<<(x),__putc('\n'),0)...}; }
	template<typename Iter>
	void writesp(Iter begin,Iter end)
	{ while(begin!=end) (*this)<<*(begin++)<<' '; }
	template<typename Iter>
	void writeln(Iter begin,Iter end)
	{ while(begin!=end) (*this)<<*(begin++)<<'\n'; }
}qout;

class FastInput final: public FastIOBase
{
 private:
	bool __eof;
 public:
	FastInput(FILE *f=stdin): FastIOBase(f),__eof(false)
#ifdef OPENIOBUF
	{ buf_p=BUFSIZE; }
	void flush() { buf[fread(buf,1,BUFSIZE,target)]=EOF,buf_p=0; }
	bool eof()const { return buf[buf_p]==EOF; }
#else
	{}
	bool eof()const { return feof(target); }
#endif
	char get()
	{
		if(__eof) return EOF;
#ifdef OPENIOBUF
		if(buf_p==BUFSIZE) flush();
		char ch=buf[buf_p++];
#else
		char ch=getc(target);
#endif
		return ~ch?ch:(__eof=true,EOF);
	}
	void unget(char c)
	{
		__eof=false;
#ifdef OPENIOBUF
		buf_p--;
#else
		ungetc(c,target);
#endif
	}
	explicit operator bool()const { return !__eof; }
	FastInput &operator >>(char &x)
	{ while(isspace(x=get()));return *this; }
	template<typename T>
	std::enable_if_t<std::is_integral<T>::value,FastInput&> operator >>(T &x)
	{
		char ch,sym=0;x=0;
		while(isspace(ch=get()));
		if(__eof) return *this;
		if(ch=='-') sym=1,ch=get();
		for(;isdigit(ch);x=(x<<1)+(x<<3)+(ch^48),ch=get());
		return unget(ch),sym?x=-x:x,*this;
	}
	FastInput &operator >>(char *s)
	{
		while(isspace(*s=get()));
		if(__eof) return *this;
		for(;!isspace(*s) && !__eof;*(++s)=get());
		return unget(*s),*s='\0',*this;
	}
	FastInput &operator >>(std::string &s)
	{
		char str_buf[(1<<8)+1]={0},*p=str_buf;
		char *const buf_end=str_buf+(1<<8);
		while(isspace(*p=get()));
		if(__eof) return *this;
		for(s.clear(),p++;;p=str_buf)
		{
			for(;p!=buf_end && !isspace(*p=get()) && !__eof;p++);
			if(p!=buf_end) break;
			s.append(str_buf);
		}
		unget(*p),*p='\0',s.append(str_buf);
		return *this;
	}
	template<typename ...T>
	void read(T &...x)
	{ std::initializer_list<int>{(this->operator>>(x),0)...}; }
	template<typename Iter>
	void read(Iter begin,Iter end)
	{ while(begin!=end) (*this)>>*(begin++); }
}qin;

} // namespace FastIO
using FastIO::qin,FastIO::qout;

using LL=long long;
using LD=long double;
using UI=unsigned int;
using ULL=unsigned long long;
constexpr int INF=1e9;

#ifndef DADALZY
#define FILEIO(file) freopen(file".in","r",stdin),freopen(file".out","w",stdout)
#define LOG(...) void()
#else
#define FILEIO(file)
#define LOG(...) fprintf(stderr,__VA_ARGS__)
#endif

namespace Math
{

template<typename Derived>
class ModintBase
{
 protected:
	int val;
 private:
	template<typename T>
	constexpr enable_if_t<is_integral<T>::value,T> __inv(T a,T b)const
	{ T x=0,y=1,t=0;for(;a;t=b/a,std::swap(a,b-=t*a),std::swap(y,x-=t*y));return x; }
	template<typename T>
	constexpr enable_if_t<is_integral<T>::value,T> __fix(T x)const
	{ return static_cast<const Derived*>(this)->fix(x); }
	constexpr static ModintBase __unfixed(int x)
	{ return reinterpret_cast<ModintBase&>(x); }
#define DEF_OP1(op) \
	friend constexpr ModintBase operator op(const ModintBase &lhs,const ModintBase &rhs)\
	{ return ModintBase(lhs)op##=rhs; }\
	ModintBase &operator op##=(const ModintBase &rhs)
#define DEF_OP2(op) \
	constexpr ModintBase  operator op(int)\
	{ ModintBase res(*this);return op(*this),res; }\
	constexpr ModintBase &operator op()
#define DEF_OP3(op) \
	constexpr ModintBase operator op()const
#define DEF_OP4(op) \
	friend constexpr bool operator op(const ModintBase &lhs,const ModintBase &rhs) \
	{ return lhs.val op rhs.val; }
#define MOD static_cast<const Derived*>(this)->getMod()
 public:
	constexpr ModintBase(): val(0) {}
	template<typename T>
	constexpr ModintBase(const T &x): val(__fix(x)) {}
	constexpr int operator ()()const { return val; }
	DEF_OP1(+) { return (val+=rhs.val)>=MOD?val-=MOD:0,*this; }
	DEF_OP1(-) { return (val-=rhs.val)<0?val+=MOD:0,*this; }
	DEF_OP1(*) { return val=__fix(1ll*val*rhs.val),*this; }
	DEF_OP1(/) { return val=__fix(1ll*val*__inv(rhs.val,MOD)),*this; }
	DEF_OP2(++) { return (++val)>=MOD?val-=MOD:0,*this; }
	DEF_OP2(--) { return (--val)<0?val+=MOD:0,*this; }
	DEF_OP3(+) { return *this; }
	DEF_OP3(-) { return __unfixed(val?MOD-val:0); }
	DEF_OP4(==) DEF_OP4(!=) DEF_OP4(<) DEF_OP4(>) DEF_OP4(<=) DEF_OP4(>=)
	constexpr ModintBase inv()const
	{ return ModintBase(__inv(val,MOD)); }
	template<typename T>
	friend inline constexpr enable_if_t<is_integral<T>::value,Derived> qpow(Derived x,T y)
	{ Derived res(1);for(;y;x*=x,y>>=1)if(y&1)res*=x;return res; }
#undef DEF_OP1
#undef DEF_OP2
#undef DEF_OP3
#undef DEF_OP4
#undef MOD
};

class FastMod
{
 private:
	using ULL=uint64_t;
	using U128=__uint128_t;
	ULL p,m;
 public:
	constexpr FastMod(): p(0),m(0) {}
	constexpr FastMod(ULL p): p(p),m((U128(1)<<64)/p) {}
	constexpr ULL getp()const { return p; }
	constexpr ULL operator()(ULL a)const
	{ ULL q=(U128(m)*a)>>64,r=a-q*p;return r>=p?r-p:r; }
};

// Modint for dynamic MOD
class DModint: public ModintBase<DModint>
{
 private:
	using BaseT=ModintBase<DModint>;
	static FastMod R;
	friend BaseT;
	template<typename T> static constexpr T fix(T x)
	{ return x<0?R.getp()-R(-x):R(x); }
 public:
	template<typename ...T>
	constexpr DModint(T ...x): BaseT(x...){}
	static constexpr void setMod(int mod) { R=FastMod(mod); }
	static constexpr int getMod() { return R.getp(); }
};
FastMod DModint::R{};

// Modint for static MOD
template<int MOD>
class SModint: public ModintBase<SModint<MOD>>
{
 private:
	using BaseT=ModintBase<SModint<MOD>>;
	friend BaseT;
	template<typename T> static constexpr T fix(T x)
	{ return (x%=MOD)<0?x+MOD:x; }
 public:
	template<typename ...T>
	constexpr SModint(T ...x): BaseT(x...) {}
	static constexpr int getMod() { return MOD; }
};

} // namespace Math

constexpr int MOD=998244353;
using Mint=Math::SModint<MOD>;

int T,n;
struct Rect{ int lx,rx,ly,ry; }a[100005];

int nx,ny,lshx[200005],lshy[200005];
inline int getx(int x)
{ return lower_bound(lshx+1,lshx+nx+1,x)-lshx; }
inline int gety(int y)
{ return lower_bound(lshy+1,lshy+ny+1,y)-lshy; }
inline Mint C2(Mint x)
{ return x*(x-1)/2; }
inline Mint C3(Mint x)
{ return x*(x-1)*(x-2)/6; }

struct TreeNode{ int mn;Mint sum; }t[800005];
#define LC (i<<1)
#define RC (i<<1|1)
void build(int l,int r,int i=1)
{
	t[i].mn=INF;
	t[i].sum=t[i].mn*Mint(lshy[r+1]-lshy[l]);
	if(l==r) return;
	int mid=(l+r)>>1;
	build(l,mid,LC),build(mid+1,r,RC);
}
Mint calc(int mn,int i,int l,int r)
{
	if(l==r) return min(mn,t[i].mn)*Mint(lshy[r+1]-lshy[l]);
	int mid=(l+r)>>1;
	if(mn<=t[RC].mn) return calc(mn,LC,l,mid)+mn*Mint(lshy[r+1]-lshy[mid+1]);
	else return t[i].sum+calc(mn,RC,mid+1,r);
}
void modify(int p,int x,int i=1,int l=1,int r=ny-1)
{
	if(l==r) return t[i].mn=x,void();
	int mid=(l+r)>>1;
	if(mid>=p) modify(p,x,LC,l,mid);
	else modify(p,x,RC,mid+1,r);
	t[i].mn=min(t[LC].mn,t[RC].mn);
	t[i].sum=calc(t[RC].mn,LC,l,mid);
}
Mint query(int lim,int rq)
{
	int cur=INF;
	Mint res;
	auto work=[&](auto &self,int i,int l,int r)
	{
		if(cur<lim) return;
		if(r<=rq && min(cur,t[i].mn)>=lim)
		{
			res+=calc(cur,i,l,r)-Mint(lshy[r+1]-lshy[l])*(lim-1);
			cur=min(cur,t[i].mn);
			return;
		}
		if(l>rq || l==r)
			return cur=min(cur,t[i].mn),void();
		int mid=(l+r)>>1;
		self(self,RC,mid+1,r);
		self(self,LC,l,mid);
	};
	work(work,1,1,ny-1);
	return res;
}

int ord1[100005],ord2[100005];
int llen[100005],rlen[100005];
multiset<int> mxl,mnr,ss[200005];
Mint subsolve1()
{
	int liml=nx,limr=0;
	for(int i=1,l=1,r=INF,j=1;i<nx;i++)
	{
		while(j<=n && a[ord2[j]].rx<lshx[i])
		{
			l=max(l,a[ord2[j]].lx);
			r=min(r,a[ord2[j]].rx);
			j++;
		}
		if(l>r) { liml=i;break; }
		llen[i]=(j>1?r-l+1:0);
	}
	for(int i=nx,l=1,r=INF,j=n;i>1;i--)
	{
		while(j>=1 && a[ord1[j]].lx>=lshx[i])
		{
			l=max(l,a[ord1[j]].lx);
			r=min(r,a[ord1[j]].rx);
			j--;
		}
		if(l>r) { limr=i-1;break; }
		rlen[i-1]=(j<n?r-l+1:0);
	}
	Mint res;
	for(int i=1;i<nx;i++)
	{
		if(i>=liml || i<=limr) continue;
		Mint len=lshx[i+1]-lshx[i],ld=lshx[i]-1,rd=INF-lshx[i+1]+1;
		if(llen[i] && rlen[i]) res+=len*llen[i]*rlen[i];
		else if(llen[i]) res+=llen[i]*C2(len)+rd*llen[i]*len;
		else if(rlen[i]) res+=rlen[i]*C2(len)+ld*rlen[i]*len;
		else res+=ld*rd*len+C2(len)*(ld+rd)+C3(len);
	}
	return res;
}
Mint subsolve2()
{
	mxl=multiset{1};
	mnr=multiset{INF};
	for(int i=1;i<ny;i++) ss[i]=multiset{INF};
	build(1,ny-1);
	auto add=[&](int l,int r)
	{
		int p=gety(l)-1;
		mxl.insert(l);
		mnr.insert(r);
		ss[p].insert(r);
		if(p>=1) modify(p,*ss[p].begin());
	};
	auto del=[&](int l,int r)
	{
		int p=gety(l)-1;
		mxl.erase(mxl.find(l));
		mnr.erase(mnr.find(r));
		ss[p].erase(ss[p].find(r));
		if(p>=1) modify(p,*ss[p].begin());
	};
	for(int i=1;i<=n;i++) add(a[i].ly,a[i].ry);
	Mint res;
	for(int i=1,j1=1,j2=1;i<nx;i++)
	{
		while(j1<=n && a[ord1[j1]].lx<lshx[i+1])
			del(a[ord1[j1]].ly,a[ord1[j1]].ry),j1++;
		while(j2<=n && a[ord2[j2]].rx<lshx[i])
			add(a[ord2[j2]].ly,a[ord2[j2]].ry),j2++;
		int l=*mxl.rbegin(),r=*mnr.begin(),len=lshx[i+1]-lshx[i];
		res+=len*query(l,gety(r+1)-1);
		if(l<=r) res-=len*((r-l+1)+C2(r-l+1));
	}
	return res;
}
Mint solve()
{
	nx=2,lshx[1]=1,lshx[2]=INF+1;
	ny=2,lshy[1]=1,lshy[2]=INF+1;
	for(int i=1;i<=n;i++)
	{
		lshx[++nx]=a[i].lx,lshx[++nx]=a[i].rx+1;
		lshy[++ny]=a[i].ly,lshy[++ny]=a[i].ry+1;
	}
	sort(lshx+1,lshx+nx+1);
	sort(lshy+1,lshy+ny+1);
	nx=unique(lshx+1,lshx+nx+1)-lshx-1;
	ny=unique(lshy+1,lshy+ny+1)-lshy-1;
	iota(ord1+1,ord1+n+1,1);
	iota(ord2+1,ord2+n+1,1);
	sort(ord1+1,ord1+n+1,[](int x,int y){ return a[x].lx<a[y].lx; });
	sort(ord2+1,ord2+n+1,[](int x,int y){ return a[x].rx<a[y].rx; });
	Mint res;
	res+=subsolve1();
	res+=subsolve2();
	return res;
}

int main()
{
	qin>>T;
	while(T--)
	{
		qin>>n;
		for(int i=1;i<=n;i++)
			qin>>a[i].lx>>a[i].ly>>a[i].rx>>a[i].ry;
		Mint ans;
		ans+=solve();
		for(int i=1;i<=n;i++)
			swap(a[i].lx,a[i].ly),swap(a[i].rx,a[i].ry);
		ans+=solve();
		qout<<ans()<<'\n';
	}
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 22448kb

input:

3
1
1 1 1000000000 1000000000
3
1 1 2 2
3 3 4 4
5 5 6 6
5
581574116 47617804 999010750 826131769
223840663 366320907 613364068 926991396
267630832 51913575 488301124 223957497
217461197 492085159 999485867 913732845
28144453 603781668 912516656 993160442

output:

230616300
64
977066618

result:

ok 3 number(s): "230616300 64 977066618"

Test #2:

score: 0
Accepted
time: 25ms
memory: 24056kb

input:

1000
10
5 7 6 10
4 3 6 9
1 6 3 7
1 1 7 10
1 2 7 7
5 2 8 3
2 1 5 7
1 1 10 6
1 7 2 8
4 7 5 9
10
6 6 8 10
4 4 9 9
2 4 6 5
5 3 10 10
1 3 4 4
2 2 3 6
7 5 8 6
2 7 8 8
5 7 10 10
2 4 7 8
10
3 6 6 10
1 2 7 4
7 5 10 9
4 5 8 9
2 7 5 9
2 2 9 7
3 3 8 4
1 1 8 6
5 4 10 6
3 9 7 10
10
3 1 8 9
1 3 8 10
4 1 7 4
2 4 5 ...

output:

28090346
21067815
91293528
63203269
14045217
24579047
49158123
56180656
10533942
83
28090372
101827338
512901428
38624242
10533932
42135595
7022614
7022661
7022622
31601641
21067817
35112979
7022628
7022682
17556485
42135554
59692019
28090452
14045202
73737099
42135505
31601703
49158091
28090434
108...

result:

ok 1000 numbers

Test #3:

score: 0
Accepted
time: 20ms
memory: 23892kb

input:

1000
10
56 6 85 86
2 67 79 76
41 32 57 94
7 24 95 72
4 82 98 99
21 16 64 95
5 15 97 50
75 34 93 63
65 1 74 40
62 50 91 57
10
1 66 4 99
73 28 80 35
9 46 84 72
57 12 74 75
24 20 72 86
30 35 51 52
20 32 80 48
1 27 38 38
79 30 91 86
49 11 78 31
10
84 36 95 84
18 76 83 96
87 6 97 24
59 74 79 81
36 6 49 1...

output:

286940182
6719
3879
10985
284425706
1482
154507014
337096188
15634
15198
13957
311811545
2065
487051821
104322525
4160
6232
3566
259869863
676660625
533734216
1108
210694302
941064564
9524057
366655439
960
712817222
294969344
505637269
5277
216
807601960
6489
192
252834684
9863
523061934
1036
370
16...

result:

ok 1000 numbers

Test #4:

score: 0
Accepted
time: 20ms
memory: 23028kb

input:

1000
10
151949335 343818689 226887829 843487881
26268786 629172470 727820988 753588469
239557045 129989050 828912527 803511337
216216272 737211068 952614934 901139965
9412307 270208240 969836975 781270622
210767204 691143582 734743967 978765608
115072779 149374200 365237395 723260248
373039270 50881...

output:

989992685
889170389
199600526
811602467
101647877
422274637
988817681
775346897
987827054
201664770
0
425324155
654779513
129937888
504567840
567363794
953468940
390846625
863893486
832900735
549488122
626520957
651708706
325695215
265584217
535054615
654784437
835844534
970196650
259827660
73563096...

result:

ok 1000 numbers

Test #5:

score: 0
Accepted
time: 423ms
memory: 23024kb

input:

20000
10
387518709 362080654 857718988 413892967
259574026 383071239 349422952 406322216
252781835 421214199 960954668 766986966
709548059 152868851 829506776 286195984
533564379 238783143 835360470 804665480
37715197 439312193 350269160 510361284
760325088 379134217 996444460 640572941
75706031 242...

output:

425031005
145199488
76594243
608094392
105901554
767793557
925027675
718008576
542146803
257776847
83948409
557131094
957234323
316994452
711146361
878596101
863265391
86278462
882556696
943381219
171834801
312110039
509815322
995001589
267270543
321796762
646607323
535110629
612892338
264981338
862...

result:

ok 20000 numbers

Test #6:

score: 0
Accepted
time: 415ms
memory: 23668kb

input:

20000
9
23397362 5465077 922916650 905326448
334129892 259574026 806023297 349422952
85390000 14589070 252781835 159363469
518493829 9904109 881263301 763351170
376515120 592421912 709548059 922381128
522936 888125869 919020884 968891551
192627293 528719402 238783143 846674462
269993278 155196111 41...

output:

38446691
441652008
80634077
86958519
313123987
37147655
292453230
135822548
347213034
875178269
572593450
121333363
910761745
288628833
144542647
336001702
492148086
504465362
307137735
40715447
936972207
895075762
698856636
442121431
960601688
728799681
619152060
51416671
586371383
183976942
996194...

result:

ok 20000 numbers

Test #7:

score: 0
Accepted
time: 604ms
memory: 22792kb

input:

2000
98
441828066 355550044 980140398 758338808
139187839 379489833 732496729 915149220
6198442 7406064 811667085 671521385
634108502 54340068 750182168 712125681
51518185 164417838 414217749 690302726
26971686 349814847 96913121 613904116
18885592 344395345 969337141 761958781
6500321 288362602 695...

output:

847505316
69861689
762022665
942187496
610542723
297361682
408287130
37288980
129194998
781348133
138625309
885806848
596340815
251557403
136654463
415973838
348935020
217451841
607735223
183258123
453186006
29511771
486730947
90933161
744360742
932334149
464917933
58351031
36268611
777434481
348682...

result:

ok 2000 numbers

Test #8:

score: 0
Accepted
time: 882ms
memory: 23508kb

input:

200
993
336152525 31049117 970839548 34483370
257968529 73378100 760295564 459870661
769587893 565770848 979251259 884779692
92706327 715631888 976631772 730467480
102936760 674056008 996888200 756831534
141490448 466112222 761954523 960644829
601216664 500053814 974949771 928192751
298296452 359164...

output:

163043779
101789580
214159985
605122084
222495872
595662571
919415389
27790333
940923361
745272650
432367810
269413997
881525570
275197159
128519736
759744770
394059985
858394070
885939030
507707772
380648232
853123251
659897376
142847962
866652391
78179639
672081467
655879491
267275050
880872481
74...

result:

ok 200 numbers

Test #9:

score: 0
Accepted
time: 425ms
memory: 27648kb

input:

200
989
1 8 5 9
6 4 9 7
9 4 10 10
3 3 8 7
7 1 9 5
9 4 10 6
4 3 7 8
3 1 7 4
2 5 3 6
3 4 4 7
4 3 7 9
1 2 9 8
4 3 6 4
2 2 6 10
6 8 7 10
2 1 3 9
1 1 4 10
1 5 4 8
2 3 4 9
4 3 9 9
1 2 6 7
7 4 9 5
4 3 8 10
4 1 8 10
7 2 8 5
2 4 3 8
5 4 10 6
9 1 10 5
5 3 7 7
6 4 10 10
6 6 7 9
1 1 3 10
2 2 9 8
2 3 7 8
3 9 10 ...

output:

3
1
2
1
2
1
2
3511294
1
3511294
2
2
3511295
3
2
2
6
1
2
1
1
3
1
3511294
1
1
10533874
1
1
1
2
2
1
6
432141794
1
1
2
4
1
3511294
2
3511294
3
3
1
2
1
853749714
3
3
7022585
3511294
2
2
3
7022585
3
14045164
1
2
1
1
1
4
2
4
3511295
3
3
3511295
3511295
7022585
1
2
1
3
2
1
7022585
2
2
2
3
2
7022585
2
4
3
2
...

result:

ok 200 numbers

Test #10:

score: 0
Accepted
time: 591ms
memory: 25104kb

input:

200
993
5 48 42 78
55 33 66 92
6 5 38 34
38 34 82 48
9 76 34 86
50 39 72 44
46 54 96 82
4 13 68 24
39 25 93 56
36 53 98 86
19 10 73 24
54 27 97 84
34 21 93 76
44 7 70 89
63 73 97 98
50 24 94 35
8 30 98 67
3 15 81 67
39 9 78 24
8 65 100 98
13 5 86 33
54 67 99 84
3 2 43 4
53 51 70 86
1 61 61 90
46 78 ...

output:

1
1
2
1
2
3
2
1
2
1
1
1
1
1
2
2
1
2
2
17
1
3
1
10
1
2
2
1
1
81
15
1
170
1
4
1
2
1
1
2
1
2
1
2
1
1
4
1
2
1
2
1
1
1
1
2
3511413
1
2
1
2
2
7022597
1
2
2
2
2
2
1
1
1
1
2
1
1
2
1
1
1
1
1
1
3
2
4
1
2
3
1
6
1
1
1
2
1
1
1
1
2
10
6
5
1
1
1
1
1
1
2
10
6
2
4
3
3511332
2
2
1
1
1
4
1
2
1
2
1
5
7
6
1
1
2
1
1
1
1
...

result:

ok 200 numbers

Test #11:

score: 0
Accepted
time: 1428ms
memory: 24980kb

input:

20
9956
444627993 347200064 774678572 839098978
96936514 121569633 839637347 729127099
343857875 554213034 875416430 628610537
15566043 187047055 405963021 764745923
487340755 59747358 604299543 832826844
486772462 67273090 826002755 268527861
703758831 112254125 887710074 874858855
569284980 830139...

output:

723891885
824191538
424987081
659035365
778857924
125675099
919713447
291966121
841813
399938856
822967409
178787426
958377822
295302425
835192235
569958073
114037901
814150865
893384876
929070768

result:

ok 20 numbers

Test #12:

score: 0
Accepted
time: 2811ms
memory: 47412kb

input:

2
99774
247800693 19906287 955213467 53123614
752909581 205074868 772413424 686934334
565298662 150234672 941079197 750300220
29485217 794172007 678447605 874228231
524081254 14156413 775198532 256753797
121163010 271762780 489047491 996802646
61272893 135510320 459683721 975698463
37577668 16804082...

output:

272047384
165799897

result:

ok 2 number(s): "272047384 165799897"

Test #13:

score: 0
Accepted
time: 2647ms
memory: 47632kb

input:

2
99484
80367959 446700298 316938043 713030699
180389 97354205 991264982 207371172
227833166 343626198 994287807 999074121
223486533 274166047 762438540 996451527
139307586 443291005 936748272 801084030
368603416 246191750 992851831 575339592
136221208 723918872 407787921 838545617
455487191 6275486...

output:

802453384
719182239

result:

ok 2 number(s): "802453384 719182239"

Test #14:

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

input:

2
99702
94595645 404782179 993272416 799556541
245960576 714158438 987938798 821638563
327691314 213461603 998000552 819971477
908733781 18331290 994253841 385477664
28676928 357826789 998470667 719588896
710572487 806027973 975068392 829637377
822675537 183304736 991051351 955945560
469997956 65270...

output:

652843490
385598972

result:

ok 2 number(s): "652843490 385598972"

Test #15:

score: 0
Accepted
time: 2799ms
memory: 47340kb

input:

2
99412
198128938 38044404 520528603 69633461
296156091 253862054 879892175 422416582
113833513 497466407 912643387 778378206
852447189 420378642 973727926 802939446
34007282 574929361 774903967 607765114
349114758 378613356 379719307 996737934
263835095 266671229 866002851 601998719
429266410 68169...

output:

399712945
504439560

result:

ok 2 number(s): "399712945 504439560"

Test #16:

score: -100
Runtime Error

input:

2
99774
75930961 154072381 847971169 627055843
244525147 409278367 925944938 528328481
129723553 183994451 964033785 826775854
68114505 152036158 731700382 837809150
53123614 32632966 910136942 528684484
252909581 230872854 640150186 541470159
486420648 319619359 641792851 842591283
120182438 144662...

output:


result: