QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#799827#1452. Not Long Enoughmaroonrk#AC ✓76ms17368kbC++2023.3kb2024-12-05 18:29:422024-12-05 18:29:45

Judging History

This is the latest submission verdict.

  • [2024-12-05 18:29:45]
  • Judged
  • Verdict: AC
  • Time: 76ms
  • Memory: 17368kb
  • [2024-12-05 18:29:42]
  • Submitted

answer

#ifndef LOCAL
#pragma GCC optimize ("Ofast")
#pragma GCC optimize ("unroll-loops")
#endif

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

using ll=long long;
#define int ll

bool dbg=false;

#define rng(i,a,b) for(int i=int(a);i<int(b);i++)
#define rep(i,b) rng(i,0,b)
#define gnr(i,a,b) for(int i=int(b)-1;i>=int(a);i--)
#define per(i,b) gnr(i,0,b)
#define pb push_back
#define eb emplace_back
#define a first
#define b second
#define bg begin()
#define ed end()
#define all(x) x.bg,x.ed
#define si(x) int(x.size())
#ifdef LOCAL
#define dmp(x) cerr<<__LINE__<<" "<<#x<<" "<<x<<endl
#else
#define dmp(x) void(0)
#endif

template<class t,class u> bool chmax(t&a,u b){if(a<b){a=b;return true;}else return false;}
template<class t,class u> bool chmin(t&a,u b){if(b<a){a=b;return true;}else return false;}

template<class t> using vc=vector<t>;
template<class t> using vvc=vc<vc<t>>;

using pi=pair<int,int>;
using vi=vc<int>;
using vvi=vc<vc<int>>;

template<class t,class u>
ostream& operator<<(ostream& os,const pair<t,u>& p){
	return os<<"{"<<p.a<<","<<p.b<<"}";
}

template<class t> ostream& operator<<(ostream& os,const vc<t>& v){
	os<<"{";
	for(auto e:v)os<<e<<",";
	return os<<"}";
}

#define mp make_pair
#define mt make_tuple
#define one(x) memset(x,-1,sizeof(x))
#define zero(x) memset(x,0,sizeof(x))
#ifdef LOCAL
void dmpr(ostream&os){os<<endl;}
template<class T,class... Args>
void dmpr(ostream&os,const T&t,const Args&... args){
	os<<t<<" ";
	dmpr(os,args...);
}
#define dmp2(...) dmpr(cerr,__LINE__,##__VA_ARGS__)
#else
#define dmp2(...) void(0)
#endif

using uint=unsigned;
using ull=unsigned long long;

template<class t,size_t n>
ostream& operator<<(ostream&os,const array<t,n>&a){
	return os<<vc<t>(all(a));
}

ll rand_int(ll l, ll r) { //[l, r]
	//#ifdef LOCAL
	static mt19937_64 gen;
	/*#else
	static mt19937_64 gen(chrono::steady_clock::now().time_since_epoch().count());
	#endif*/
	return uniform_int_distribution<ll>(l, r)(gen);
}

ll rand_int(ll k){ //[0,k)
	return rand_int(0,k-1);
}
string rand_string(int n,char lw,char up){
	string s(n,'?');
	rep(i,n)s[i]=rand_int(lw,up);
	return s;
}

int current_run_id,run_batch_size=1000;
int calc_random_limit(){
	return current_run_id/run_batch_size+1;
}
template<class t>
void generate_single(t&a){
	a=rand_int(1,calc_random_limit());
}
void generate_single(string&a){
	int n;generate_single(n);
	a=rand_string(n,'a','b');
}
template<class t,class u>
void generate_single(pair<t,u>&a){
	generate_single(a.a);
	generate_single(a.b);
}
//https://trap.jp/post/1224/
template<class... Args>
void input(Args&... a){
	if(dbg){
		(generate_single(a),...);
	}else{
		#ifdef USE_FAST_IO
		sc.read(a...);
		#else
		(cin >> ... >> a);
		#endif
	}
}
#define INT(...) int __VA_ARGS__;input(__VA_ARGS__)
#define LL(...) ll __VA_ARGS__;input(__VA_ARGS__)
#define ULL(...) ull __VA_ARGS__;input(__VA_ARGS__)
#define STR(...) string __VA_ARGS__;input(__VA_ARGS__)
#define CHR(...) char __VA_ARGS__;input(__VA_ARGS__)
#define DBL(...) double __VA_ARGS__;input(__VA_ARGS__)
#define LD(...) ld __VA_ARGS__;input(__VA_ARGS__)
#define overload3(a,b,c,d,...) d
#define VI2(name,size) vi name(size);rep(i_##name,size)input(name[i_##name]);
#define VI3(name,size,offset) vi name(size);rep(i_##name,size)input(name[i_##name]),name[i_##name]+=offset;
#define VI(...) overload3(__VA_ARGS__,VI3,VI2)(__VA_ARGS__)
#define VPI(name,size) vc<pi> name(size);rep(i_##name,size)input(name[i_##name]);
#define VVI(name,sizeN,sizeM) vvi name(sizeN,vi(sizeM));\
rep(i_##name,sizeN)rep(j_##name,sizeM)input(name[i_##name][j_##name]);
#define VS(name,size) vc<string> name(size);rep(i_##name,size)input(name[i_##name]);
#define VMI(name,size) vc<mint> name(size);rep(i_##name,size){INT(tmp_##name);name[i_##name]=tmp_##name;};

#define overload5(a,b,c,d,e,f,...) f
#define VVC4(type,name,sizeN,sizeM) vvc<type> name(sizeN,vc<type>(sizeM));
#define VVC5(type,name,sizeN,sizeM,ini) vvc<type> name(sizeN,vc<type>(sizeM,ini));
#define VVC(...) overload5(__VA_ARGS__,VVC5,VVC4)(__VA_ARGS__)

template<class T>
T vvvc(T v){
	return v;
}

template<class T,class...Args>
auto vvvc(int n,T v,Args...args){
	return vector(n,vvvc(v,args...));
}

template<int i,class T>
void print_tuple(ostream&,const T&){
}

template<int i,class T,class H,class ...Args>
void print_tuple(ostream&os,const T&t){
	if(i)os<<",";
	os<<get<i>(t);
	print_tuple<i+1,T,Args...>(os,t);
}

template<class ...Args>
ostream& operator<<(ostream&os,const tuple<Args...>&t){
	os<<"{";
	print_tuple<0,tuple<Args...>,Args...>(os,t);
	return os<<"}";
}

void printsuc(int suc){
	#ifdef USE_FAST_IO
		if(suc==1)pr.write('\n');
		if(suc==2)pr.write(' ');
	#else
		if(suc==1){
			if(dbg)cout<<endl;
			else{
				#ifdef LOCAL
				cout<<endl;
				#else
				cout<<"\n";
				#endif
			}
		}
		if(suc==2)
			cout<<" ";
	#endif
}

template<class t>
void print_single(t x,int suc=1){
	#ifdef USE_FAST_IO
	pr.write(x);
	#else
	cout<<x;
	#endif
	printsuc(suc);
}

template<class t,class u>
void print_single(const pair<t,u>&p,int suc=1){
	print_single(p.a,2);
	print_single(p.b,suc);
}

template<class T>
void print_single(const vector<T>&v,int suc=1){
	rep(i,v.size())
		print_single(v[i],i==int(v.size())-1?3:2);
	printsuc(suc);
}

template<class T,size_t N>
void print_single(const array<T,N>&v,int suc=1){
	rep(i,N)
		print_single(v[i],i==int(N)-1?3:2);
	printsuc(suc);
}

template<class T>
void print(const T&t){
	print_single(t);
}

template<class T,class ...Args>
void print(const T&t,const Args&...args){
	print_single(t,2);
	print(args...);
}

template<class T>
void printvv(const vvc<T>&vs){
	for(const auto&row:vs)print(row);
}

string readString(){
	string s;
	cin>>s;
	return s;
}

template<class T>
T sq(const T& t){
	return t*t;
}

void YES(bool ex=true){
	cout<<"YES\n";
	if(ex)exit(0);
	#ifdef LOCAL
	cout.flush();
	#endif
}
void NO(bool ex=true){
	cout<<"NO\n";
	if(ex)exit(0);
	#ifdef LOCAL
	cout.flush();
	#endif
}
void Yes(bool ex=true){
	cout<<"Yes\n";
	if(ex)exit(0);
	#ifdef LOCAL
	cout.flush();
	#endif
}
void No(bool ex=true){
	cout<<"No\n";
	if(ex)exit(0);
	#ifdef LOCAL
	cout.flush();
	#endif
}
//#define CAPITAL
/*
void yes(bool ex=true){
	#ifdef CAPITAL
	cout<<"YES"<<"\n";
	#else
	cout<<"Yes"<<"\n";
	#endif
	if(ex)exit(0);
	#ifdef LOCAL
	cout.flush();
	#endif
}
void no(bool ex=true){
	#ifdef CAPITAL
	cout<<"NO"<<"\n";
	#else
	cout<<"No"<<"\n";
	#endif
	if(ex)exit(0);
	#ifdef LOCAL
	cout.flush();
	#endif
}*/
void possible(bool ex=true){
	#ifdef CAPITAL
	cout<<"POSSIBLE"<<"\n";
	#else
	cout<<"Possible"<<"\n";
	#endif
	if(ex)exit(0);
	#ifdef LOCAL
	cout.flush();
	#endif
}
void impossible(bool ex=true){
	#ifdef CAPITAL
	cout<<"IMPOSSIBLE"<<"\n";
	#else
	cout<<"Impossible"<<"\n";
	#endif
	if(ex)exit(0);
	#ifdef LOCAL
	cout.flush();
	#endif
}

constexpr ll ten(int n){
	return n==0?1:ten(n-1)*10;
}

const ll infLL=LLONG_MAX/3;

#ifdef int
const int inf=infLL;
#else
const int inf=INT_MAX/2-100;
#endif

int topbit(signed t){
	return t==0?-1:31-__builtin_clz(t);
}
int topbit(ll t){
	return t==0?-1:63-__builtin_clzll(t);
}
int topbit(ull t){
	return t==0?-1:63-__builtin_clzll(t);
}
int botbit(signed a){
	return a==0?32:__builtin_ctz(a);
}
int botbit(ll a){
	return a==0?64:__builtin_ctzll(a);
}
int botbit(ull a){
	return a==0?64:__builtin_ctzll(a);
}
int popcount(signed t){
	return __builtin_popcount(t);
}
int popcount(ll t){
	return __builtin_popcountll(t);
}
int popcount(ull t){
	return __builtin_popcountll(t);
}
int bitparity(ll t){
	return __builtin_parityll(t);
}
bool ispow2(int i){
	return i&&(i&-i)==i;
}
ll mask(int i){
	return (ll(1)<<i)-1;
}
ull umask(int i){
	return (ull(1)<<i)-1;
}
ll minp2(ll n){
	if(n<=1)return 1;
	else return ll(1)<<(topbit(n-1)+1);
}

bool inc(int a,int b,int c){
	return a<=b&&b<=c;
}

template<class S> void mkuni(S&v){
	sort(all(v));
	v.erase(unique(all(v)),v.ed);
}

template<class t> bool isuni(vc<t> v){
	int s=si(v);
	mkuni(v);
	return si(v)==s;
}

template<class t>
void myshuffle(vc<t>&a){
	rep(i,si(a))swap(a[i],a[rand_int(0,i)]);
}

template<class S,class u>
int lwb(const S&v,const u&a){
	return lower_bound(all(v),a)-v.bg;
}
template<class t,class u>
bool bis(const vc<t>&v,const u&a){
	return binary_search(all(v),a);
}

//VERIFY: yosupo
//KUPC2017J
//AOJDSL1A
//without rank
struct unionfind{
	vi p,s;
	int c;
	unionfind(int n):p(n,-1),s(n,1),c(n){}
	void clear(){
		fill(all(p),-1);
		fill(all(s),1);
		c=si(p);
	}
	int find(int a){
		return p[a]==-1?a:(p[a]=find(p[a]));
	}
	//set b to a child of a
	bool unite(int a,int b){
		a=find(a);
		b=find(b);
		if(a==b)return false;
		p[b]=a;
		s[a]+=s[b];
		c--;
		return true;
	}
	bool same(int a,int b){
		return find(a)==find(b);
	}
	int sz(int a){
		return s[find(a)];
	}
};

vvc<int> readGraph(int n,int m){
	vvc<int> g(n);
	rep(i,m){
		int a,b;
		cin>>a>>b;
		//sc.read(a,b);
		a--;b--;
		g[a].pb(b);
		g[b].pb(a);
	}
	return g;
}

vvc<int> rand_tree(int n){
	vvc<int> t(n);
	unionfind uf(n);
	while(uf.c>1){
		int a=rand_int(n);
		int b=rand_int(n);
		if(uf.unite(a,b)){
			t[a].pb(b);
			t[b].pb(a);
		}
	}
	return t;
}

vvc<int> readTree(int n){
	if(dbg){
		return rand_tree(n);
	}else{
		return readGraph(n,n-1);
	}
}

vi readRooted(int n){
	assert(!dbg);
	vi par(n,-1);
	rng(i,1,n){
		input(par[i]);
		par[i]--;
		assert(inc(0,par[i],i-1));
	}
	return par;
}

void printTree(const vvc<int> t){
	int n=si(t);
	int degsum=0;
	rep(i,n)degsum+=si(t[i]);
	if(degsum==n-1){
		//directed
		rep(i,si(t))for(auto j:t[i]){
			print(i+1,j+1);
		}
	}else if(degsum==2*(n-1)){
		//undirected
		rep(i,si(t))for(auto j:t[i])if(i<j){
			print(i+1,j+1);
		}
	}else{
		assert(false);
	}
}

template<class t>
vc<t> presum(const vc<t>&a){
	vc<t> s(si(a)+1);
	rep(i,si(a))s[i+1]=s[i]+a[i];
	return s;
}
vc<ll> presum(const vi&a){
	vc<ll> s(si(a)+1);
	rep(i,si(a))s[i+1]=s[i]+a[i];
	return s;
}
//BIT で数列を管理するときに使う (CF850C)
template<class t>
vc<t> predif(vc<t> a){
	gnr(i,1,si(a))a[i]-=a[i-1];
	return a;
}
template<class t>
vvc<ll> imos(const vvc<t>&a){
	int n=si(a),m=si(a[0]);
	vvc<ll> b(n+1,vc<ll>(m+1));
	rep(i,n)rep(j,m)
		b[i+1][j+1]=b[i+1][j]+b[i][j+1]-b[i][j]+a[i][j];
	return b;
}

//verify してないや
void transvvc(int&n,int&m){
	swap(n,m);
}
template<class t,class... Args>
void transvvc(int&n,int&m,vvc<t>&a,Args&...args){
	assert(si(a)==n);
	vvc<t> b(m,vi(n));
	rep(i,n){
		assert(si(a[i])==m);
		rep(j,m)b[j][i]=a[i][j];
	}
	a.swap(b);
	transvvc(n,m,args...);
}
//CF854E
void rotvvc(int&n,int&m){
	swap(n,m);
}
template<class t,class... Args>
void rotvvc(int&n,int&m,vvc<t>&a,Args&...args){
	assert(si(a)==n);
	vvc<t> b(m,vi(n));
	rep(i,n){
		assert(si(a[i])==m);
		rep(j,m)b[m-1-j][i]=a[i][j];
	}
	a.swap(b);
	rotvvc(n,m,args...);
}

//ソートして i 番目が idx[i]
//CF850C
template<class t>
vi sortidx(const vc<t>&a){
	int n=si(a);
	vi idx(n);iota(all(idx),0);
	sort(all(idx),[&](int i,int j){return a[i]<a[j];});
	return idx;
}
//vs[i]=a[idx[i]]
//例えば sortidx で得た idx を使えば単にソート列になって返ってくる
//CF850C
template<class t>
vc<t> a_idx(const vc<t>&a,const vi&idx){
	int n=si(a);
	assert(si(idx)==n);
	vc<t> vs(n);
	rep(i,n)vs[i]=a[idx[i]];
	return vs;
}
//CF850C
vi invperm(const vi&p){
	int n=si(p);
	vi q(n);
	rep(i,n)q[p[i]]=i;
	return q;
}

template<class t,class s=t>
s SUM(const vc<t>&a){
	return accumulate(all(a),s(0));
}
template<class t,size_t K,class s=t>
s SUM(const array<t,K>&a){
	return accumulate(all(a),s(0));
}

template<class t>
t MAX(const vc<t>&a){
	return *max_element(all(a));
}

template<class t>
pair<t,int> MAXi(const vc<t>&a){
	auto itr=max_element(all(a));
	return mp(*itr,itr-a.bg);
}

template<class A>
auto MIN(const A&a){
	return *min_element(all(a));
}

template<class t>
pair<t,int> MINi(const vc<t>&a){
	auto itr=min_element(all(a));
	return mp(*itr,itr-a.bg);
}

vi vid(int n){
	vi res(n);iota(all(res),0);
	return res;
}

template<class S>
void soin(S&s){
	sort(all(s));
}

template<class S,class F>
void soin(S&s,F&&f){
	sort(all(s),forward<F>(f));
}

template<class S>
S soout(S s){
	soin(s);
	return s;
}

template<class S>
void rein(S&s){
	reverse(all(s));
}

template<class S>
S reout(S s){
	rein(s);
	return s;
}

template<class t,class u>
pair<t,u>&operator+=(pair<t,u>&a,pair<t,u> b){
	a.a+=b.a;a.b+=b.b;return a;}
template<class t,class u>
pair<t,u>&operator-=(pair<t,u>&a,pair<t,u> b){
	a.a-=b.a;a.b-=b.b;return a;}
template<class t,class u>
pair<t,u> operator+(pair<t,u> a,pair<t,u> b){return mp(a.a+b.a,a.b+b.b);}
template<class t,class u>
pair<t,u> operator-(pair<t,u> a,pair<t,u> b){return mp(a.a-b.a,a.b-b.b);}
template<class t,class u,class v>
pair<t,u>&operator*=(pair<t,u>&a,v b){
	a.a*=b;a.b*=b;return a;}
template<class t,class u,class v>
pair<t,u> operator*(pair<t,u> a,v b){return a*=b;}
template<class t,class u>
pair<t,u> operator-(pair<t,u> a){return mp(-a.a,-a.b);}
namespace std{
template<class t,class u>
istream&operator>>(istream&is,pair<t,u>&a){
	return is>>a.a>>a.b;
}
}

template<class t,size_t n>
array<t,n>&operator+=(array<t,n>&a,const array<t,n>&b){
	rep(i,n)a[i]+=b[i];
	return a;
}
template<class t,size_t n,class v>
array<t,n>&operator*=(array<t,n>&a,v b){
	rep(i,n)a[i]*=b;
	return a;
}
template<class t,size_t n,class v>
array<t,n> operator*(array<t,n> a,v b){return a*=b;}

template<class t>
t gpp(vc<t>&vs){
	assert(si(vs));
	t res=move(vs.back());
	vs.pop_back();
	return res;
}

template<class t,class u>
void pb(vc<t>&a,const vc<u>&b){
	a.insert(a.ed,all(b));
}

template<class t,class...Args>
vc<t> cat(vc<t> a,Args&&...b){
	(pb(a,forward<Args>(b)),...);
	return a;
}

template<class t,class u>
vc<t>& operator+=(vc<t>&a,u x){
	for(auto&v:a)v+=x;
	return a;
}

template<class t,class u>
vc<t> operator+(vc<t> a,u x){
	return a+=x;
}

template<class t>
vc<t>& operator+=(vc<t>&a,const vc<t>&b){
	a.resize(max(si(a),si(b)));
	rep(i,si(b))a[i]+=b[i];
	return a;
}

template<class t>
vc<t> operator+(const vc<t>&a,const vc<t>&b){
	vc<t> c(max(si(a),si(b)));
	rep(i,si(a))c[i]+=a[i];
	rep(i,si(b))c[i]+=b[i];
	return c;
}

template<class t,class u>
vc<t>& operator-=(vc<t>&a,u x){
	for(auto&v:a)v-=x;
	return a;
}
template<class t,class u>
vc<t> operator-(vc<t> a,u x){
	return a-=x;
}
template<class t>
vc<t>& operator-=(vc<t>&a,const vc<t>&b){
	a.resize(max(si(a),si(b)));
	rep(i,si(b))a[i]-=b[i];
	return a;
}
/*
template<class t>
vc<t> operator-(const vc<t>&a,const vc<t>&b){
	vc<t> c(max(si(a),si(b)));
	rep(i,si(a))c[i]+=a[i];
	rep(i,si(b))c[i]-=b[i];
	return c;
}
*/
template<class t,class u>
vc<t>& operator*=(vc<t>&a,u x){
	for(auto&v:a)v*=x;
	return a;
}
template<class t,class u>
vc<t> operator*(vc<t> a,u x){
	return a*=x;
}

template<class t,class u>
vc<t>& operator/=(vc<t>&a,u x){
	for(auto&v:a)v/=x;
	return a;
}
template<class t,class u>
vc<t> operator/(vc<t> a,u x){
	return a/=x;
}

template<class t>
vc<t>& operator<<=(vc<t>&a,int k){
	assert(k>=0);
	a.insert(a.bg,k,t(0));
	return a;
}
template<class t>
vc<t> operator<<(vc<t> a,int k){
	return a<<=k;
}

template<class t>
vc<t>& operator>>=(vc<t>&a,int k){
	if(si(a)<=k)a.clear();
	else a.erase(a.bg,a.bg+k);
	return a;
}
template<class t>
vc<t> operator>>(vc<t> a,int k){
	return a>>=k;
}

template<class t,class u>
void remval(vc<t>&a,const u&v){
	a.erase(remove(all(a),v),a.ed);
}
//消した要素の個数を返してくれる
//UCUP 2-8-F
template<class t,class F>
int remif(vc<t>&a,F f){
	auto itr=remove_if(all(a),f);
	int res=a.ed-itr;
	a.erase(itr,a.ed);
	return res;
}
template<class t>
void rempos(vc<t>&a,int i){
	assert(inc(0,i,si(a)-1));
	a.erase(a.bg+i);
}

template<class VS,class u>
void fila(VS&vs,const u&a){
	fill(all(vs),a);
}

template<class t,class u>
int findid(const vc<t>&vs,const u&a){
	auto itr=find(all(vs),a);
	if(itr==vs.ed)return -1;
	else return itr-vs.bg;
}

template<class t>
void rtt(vc<t>&vs,int i){
	rotate(vs.bg,vs.bg+i,vs.ed);
}

//Multiuni2023-8 C
//f(lw)=false,...,f(n-1)=false,f(n)=true,...,f(up)=true,
//のときに n を返す
template<class F>
int find_min_true(int lw,int up,F f){
	while(up-lw>1){
		const int mid=(lw+up)/2;
		if(f(mid))up=mid;
		else lw=mid;
	}
	return up;
}
//f(lw)=true,f(up)=false
template<class F>
int find_max_true(int lw,int up,F f){
	while(up-lw>1){
		const int mid=(lw+up)/2;
		if(f(mid))lw=mid;
		else up=mid;
	}
	return lw;
}

template<class t> using pqmin=priority_queue<t,vc<t>,greater<t>>;
template<class t> using pqmax=priority_queue<t>;
using T=tuple<int,int,int>;

//copied from yosupo's library
//PARTLY VERIFIED

//USACO 2022 January ptlatinum C

//#define GEOF

#ifdef GEOF
using ld=long double;
//using ld=double;
const ld PI=acos(ld(-1));
#else
using ld=ll;
#endif
const ld eps=1e-9;
int sgn(ld a){return a<-eps?-1:(a>eps?1:0);}
int sgn(ld a,ld b){return sgn(a-b);}
/*
using pt=complex<ld>;
#define x real()
#define y imag()
*/
struct pt {
    ld x,y;
    //pt(ld _x = ld(0), ld _y = ld(0)) : x(_x), y(_y) {}
    pt():x(0),y(0){}
    pt(ld xx,ld yy):x(xx),y(yy){}
    pt operator+(const pt& r) const { return {x + r.x, y + r.y}; }
    pt operator-(const pt& r) const { return {x - r.x, y - r.y}; }
    pt operator*(const pt& r) const {
        return {x * r.x - y * r.y, x * r.y + y * r.x};
    }
    pt inv()const{
		ld d=norm();
		return {x/d,-y/d};
	}
    pt operator/(const pt&r)const{
		return operator*(r.inv());
	}

    pt operator*(const ld& r) const { return {x * r, y * r}; }
    pt operator/(const ld& r) const { return {x / r, y / r}; }

    pt& operator+=(const pt& r) { return *this = *this + r; }
    pt& operator-=(const pt& r) { return *this = *this - r; }
    pt& operator*=(const pt& r) { return *this = *this * r; }
    pt& operator/=(const pt& r) { return *this = *this / r; }
    pt& operator*=(const ld& r) { return *this = *this * r; }
    pt& operator/=(const ld& r) { return *this = *this / r; }

    pt operator-() const { return {-x, -y}; }

	static int cmp(const pt&a,const pt&b){
		int v=sgn(a.x,b.x);
		return v?v:sgn(a.y,b.y);
	}
    bool operator<(const pt& r) const {
        return cmp(*this,r)<0;
    }
    bool operator<=(const pt& r) const {
        return cmp(*this,r)<=0;
    }
    bool operator>(const pt& r) const {
        return cmp(*this,r)>0;
    }
    bool operator==(const pt& r) const { return sgn((*this - r).rabs()) == 0; }
    bool operator!=(const pt& r) const { return !(*this == r); }

    ld norm() const { return x * x + y * y; }
    ld rabs() const { return max(std::abs(x), std::abs(y)); }  // robust abs
    pair<ld, ld> to_pair() const { return {x, y}; }
    #ifdef GEOF
    ld abs() const { return sqrt(norm()); }
    ld arg() const { return atan2(y, x); }
    static pt polar(ld le, ld th) { return {le * cos(th), le * sin(th)}; }
	#endif
};
istream& operator>>(istream& is, pt& p){
	return is>>p.x>>p.y;
}
ostream& operator<<(ostream& os, const pt& p) {
    return os << "pt(" << p.x << ", " << p.y << ")";
}
ld norm(const pt&a){
	return a.norm();
}
ld rabs(const pt&a){
	return a.rabs();
}
#ifdef GEOF
ld abs(const pt&a){
	return sqrt(norm(a));
}
//XXII Opencup Gpt of Ural K
pt normalized(const pt&a){
	return a/abs(a);
}
ld arg(const pt&a){return a.arg();}
//normalize to [-PI,PI)
//Contest 2: ptKU Contest 1, ptTZ Summer 2022 Day 4
ld normarg(ld a){
	ld res=fmod(a+PI,2*PI);
	if(res<0)res+=PI;
	else res-=PI;
	return res;
}
//normalize to [0,2*PI)
//Multiuni2023-10-E
ld normarg_nonnegative(ld a){
	ld res=fmod(a,2*PI);
	if(res<0)res+=2*PI;
	return res;
}
//AOJ1183
//arg between ab
//assume given lengths are valid
ld arg(ld a,ld b,ld c){
	return acos(min(max((a*a+b*b-c*c)/(2*a*b),ld(-1)),ld(1)));
}
//UCUP 2-20-D
ld heron(ld a,ld b,ld c){
	ld s=(a+b+c)/2;
	return sqrt(s*(s-a)*(s-b)*(s-c));
}
#endif
ld norm(const pt&a,const pt&b){
	return (a-b).norm();
}
ld dot(const pt&a,const pt&b){return a.x*b.x+a.y*b.y;}
ld crs(const pt& a,const pt& b){return a.x*b.y-a.y*b.x;}
ld crs(const pt& a,const pt& b,const pt& c){return crs(b-a,c-a);}
int ccw(const pt& a,const pt& b){return sgn(crs(a,b));}
int ccw(const pt& a,const pt& b,const pt& c){return ccw(b-a,c-a);}
//(-pi,0](0,pi]
int argtype(const pt&a){
	if(sgn(a.y)==0)return a.x<0?1:0;
	return a.y<0?0:1;
}
int argcmp(const pt&a,const pt&b){
	int at=argtype(a),bt=argtype(b);
	if(at!=bt)return at<bt?-1:1;
	return -ccw(a,b);
};
bool argless(const pt&a,const pt&b){return argcmp(a,b)<0;}
//c の位置を聞く関数です,b じゃないです
//(-2)[a,-1](0)[b,1](2)
int bet(pt a,pt b,pt c){
	pt d=b-a;
	ld e=dot(d,c-a);
	if(sgn(e)<=0)return sgn(e)-1;
	return sgn(e-norm(d))+1;
}
//AOJ0153
//三角形 abc に d が含まれるか?0-no,1-edge,2-in
int cont(pt a,pt b,pt c,pt d){
	if(ccw(a,b,c)==-1) swap(b,c);
	return min({ccw(a,b,d),ccw(b,c,d),ccw(c,a,d)})+1;
}
//(a,b) を結ぶ直線を考え,x 座標との交点の y 座標を求める
//(分子,分母)を返す
pair<ld,ld> xcut(const pt&a,const pt&b,ld x){
	return mp(a.y*(b.x-x)-b.y*(a.x-x),b.x-a.x);
}
//XXII Opencup Gpt of Ural K
pt rot90(pt a){
	return pt(-a.y,a.x);
}
#ifdef GEOF
//Multiuni 2024-6-C
pt rot(pt a,ld b){
	ld c=cos(b),s=sin(b);
	return pt(a.x*c-a.y*s,a.x*s+a.y*c);
}
ld xcutval(const pt&a,const pt&b,ld x){
	auto [p,q]=xcut(a,b,x);
	return p/q;
}
//AOJ1183
//Xmas2010 E
//-+ の 順で返す
//a の符号により,small/large が決まる
int qeq(ld a,ld b,ld c,ld&d,ld&e){
	if(sgn(a)==0){
		if(sgn(b)==0)return 0;
		d=-c/b;
		return 1;
	}
	ld f=b*b-4*a*c;
	if(sgn(f)<0)return 0;
	ld g=sqrt(max(f,ld(0)));
	d=(-b-g)/(2*a);
	e=(-b+g)/(2*a);
	return sgn(f)+1;
}
#else
pt normdir(pt a){
	if(a==pt(0,0))return a;
	int g=gcd(a.x,a.y);
	return pt(a.x/g,a.y/g);
}
#endif

ld area2(const vc<pt>&ps){
	ld res=0;
	rep(i,si(ps))res+=crs(ps[i],ps[(i+1)%si(ps)]);
	return res;
}

//stress-tested
pair<pt,pt> farthest_convex(const vc<pt>&ps){
	assert(si(ps)>=1);
	int n=si(ps);
	if(n==1)return mp(ps[0],ps[0]);
	ld mx=-1;
	int i=0,j=-1;
	rng(k,1,n)if(chmax(mx,norm(ps[i],ps[k])))j=k;
	int x=i,y=j;
	rep(_,n){
		int p=(i+1)%n,q=(j+1)%n;
		if(ccw(ps[p]-ps[i],ps[q]-ps[j])>0)j=q;
		else i=p;
		if(chmax(mx,norm(ps[i],ps[j]))){
			x=i;
			y=j;
		}
	}
	return mp(ps[x],ps[y]);
}

void slv(){
	INT(n);
	pt tot;
	vc<pt> ps;
	rep(i,n){
		INT(x,y);
		if(x==0&&y==0)continue;
		pt u(x,y);
		pt v(-x,-y);
		if(argless(v,u))tot+=u;
		ps.pb(u);
		ps.pb(v);
	}
	soin(ps,argless);
	n=si(ps);
	if(n==0)return print(0);
	vc<pt> z(n);
	z[0]=tot;
	rep(i,n-1)z[i+1]=z[i]+ps[i];
	int ans=0;
	rep(i,n)chmax(ans,norm(z[i]));
	print(ans);
}

signed main(signed argc,char*argv[]){
	if(argc>1&&strcmp(argv[1],"D")==0)dbg=true;
	
	cin.tie(0);
	ios::sync_with_stdio(0);
	cout<<fixed<<setprecision(20);
	
	if(dbg){
		while(1){
			if(current_run_id%run_batch_size==0){
				cerr<<"Current Run "<<current_run_id<<endl;
			}
			slv();
			current_run_id++;
		}
	}else{
		//int t;cin>>t;rep(_,t)
		slv();
	}
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

4
1 0
0 1
1 1
-1 -1

output:

8

result:

ok answer is '8'

Test #2:

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

input:

4
0 0
0 0
0 0
0 0

output:

0

result:

ok answer is '0'

Test #3:

score: 0
Accepted
time: 57ms
memory: 17360kb

input:

200000
-7716 -3663
6620 3642
-2287 -7981
8714 954
-4918 1464
643 2441
-4705 -2056
-183 4867
5299 4338
101 -4993
-7360 6896
-1555 2599
-2674 4765
9382 5729
9758 747
-2252 9340
4758 8233
-4649 -5719
947 7941
2857 -1592
9521 -8294
-9492 5034
-1926 4164
-253 5451
140 -5112
-5423 -5562
-657 -8951
614 196...

output:

251495090061923338

result:

ok answer is '251495090061923338'

Test #4:

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

input:

80494
-6591 -1622
1714 -2455
905 -5632
-5989 -3868
-9019 -876
3393 1537
-500 9807
-2041 4097
1088 4750
5957 5302
8530 -2672
-440 -5722
7420 -6483
-7474 -7416
-317 8142
1418 9933
5187 8521
8800 -8551
-6839 7160
2101 -6112
5118 -8475
7956 4129
-7955 4708
-4370 -109
5924 -2469
-1676 3352
-1263 -7382
57...

output:

40735991268318658

result:

ok answer is '40735991268318658'

Test #5:

score: 0
Accepted
time: 49ms
memory: 13800kb

input:

138518
-1611 615
-5667 2186
-2829 -2596
-9250 -735
8262 4295
-699 -130
-6527 899
-3364 -4253
5709 -6413
-5244 -393
9104 8431
-8266 -1115
9518 5568
4058 3138
-8605 -341
7488 -5489
977 0
4467 -4002
-8786 5684
-930 2454
-8171 629
9056 -1614
4252 2163
5584 -1459
8731 -4464
6102 -8459
-3776 6179
-1676 -5...

output:

120052213324872480

result:

ok answer is '120052213324872480'

Test #6:

score: 0
Accepted
time: 64ms
memory: 17368kb

input:

200000
-8614 8533
3143 -9793
9860 -914
-4282 2981
2124 -1514
2497 -9823
-4607 -258
-6634 -7362
9893 5077
4012 2641
-6374 3562
811 2407
-4136 6883
9387 -9609
-7297 -9587
1097 7410
-3764 -7087
-844 8692
-9950 -7442
-4785 -3275
-153 -4261
-8694 2759
-3771 -1714
3318 -9205
8506 4258
-8112 1571
7816 -989...

output:

252743705708925314

result:

ok answer is '252743705708925314'

Test #7:

score: 0
Accepted
time: 57ms
memory: 15052kb

input:

181796
6193 -7434
6042 -8340
3577 3535
-197 -4239
-8938 -215
-7444 -3785
7470 3055
6787 -8629
1637 8323
-8244 1802
1369 7440
-4153 -7742
1280 4302
5013 326
3444 1570
6715 8603
-8446 1396
-6780 -2707
-7781 5379
2160 -4432
3679 -3721
2956 7326
-9098 -3774
7595 1183
7904 -2880
8169 2505
-2267 -1422
-18...

output:

206903481547560905

result:

ok answer is '206903481547560905'

Test #8:

score: 0
Accepted
time: 21ms
memory: 6808kb

input:

56525
-8687 9314
-9239 3066
-7211 6287
-7120 -2786
-2755 -7998
9462 5294
2727 5438
4469 -7274
-7397 -6125
3075 639
2588 -2751
-8758 -131
-6435 295
-579 7944
-8931 -6811
-5797 -5382
-2488 1677
-8944 -2725
-4607 4378
-5973 5405
-7253 -7522
-4806 -715
3433 -4703
-2137 6702
131 -149
5392 5590
-5965 8185...

output:

19998546586826868

result:

ok answer is '19998546586826868'

Test #9:

score: 0
Accepted
time: 50ms
memory: 12724kb

input:

142678
1627 6445
-8144 4526
-9821 -5381
6871 -6056
9487 5678
-1941 -8158
8824 -9033
-245 -8354
8127 -4137
-6072 6803
-7749 7527
4824 -5706
7097 2967
254 2900
-8630 1994
-3916 2245
963 -6429
960 -3634
9790 1845
-6148 7592
-3695 -4233
3936 7088
8311 -8623
-5157 6785
85 -9292
-5093 1238
-884 -9622
-584...

output:

128314299867788404

result:

ok answer is '128314299867788404'

Test #10:

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

input:

21982
1596 -5502
-4733 -7449
2221 7077
-3016 -7383
8320 5515
4149 -6043
3623 400
-7339 719
-1964 -5504
1114 1058
2730 2407
5508 1821
9445 859
5252 -3182
-4183 -3591
-6667 -7108
8582 633
8218 2267
-4991 682
-4859 -4213
-4317 -695
2992 -1665
-4345 -5453
6650 8400
-4517 -7856
-5623 3880
-1546 3911
-772...

output:

3110180090628692

result:

ok answer is '3110180090628692'

Test #11:

score: 0
Accepted
time: 30ms
memory: 10588kb

input:

112115
-3590 3455
8575 8467
-8668 -7118
-5323 4686
9563 7445
8781 -6425
2604 208
6285 145
-8279 -3568
3974 -279
9959 -8016
-4920 -5006
-8548 9759
-9535 -5883
-2896 2483
4113 6334
-3008 -7461
-9889 1703
-4912 8993
-8656 6074
-6970 -9139
6176 -2078
-4893 -7641
3642 -5987
-3640 5337
2267 8221
-309 6412...

output:

78936383070490049

result:

ok answer is '78936383070490049'

Test #12:

score: 0
Accepted
time: 27ms
memory: 9300kb

input:

82232
6935 5139
4967 9829
698 -4404
-5362 -3036
3687 -7111
-2919 -7569
6549 -9671
-8009 -7714
2706 -9805
-7310 3804
940 8869
9623 -3790
-1713 -369
-8757 -6694
-351 2239
-3423 -2588
7463 -8522
5117 -627
5596 3366
2319 -6035
-4358 -6494
-640 452
-3737 5307
1715 -5381
-5009 1199
6105 5153
2107 -425
-74...

output:

42432321421285802

result:

ok answer is '42432321421285802'

Test #13:

score: 0
Accepted
time: 45ms
memory: 13636kb

input:

136955
7697 -5119
4638 858
6791 -9863
1841 3348
7983 5483
-7219 4065
4063 -5243
3219 4611
4960 7954
-6301 1049
1249 -8217
-3085 -1259
5052 125
3772 -5639
608 -8302
6333 -6985
-8513 -4489
1181 -8141
-3881 -5737
4129 5704
2465 4365
9817 8604
7361 345
5196 -9673
2035 7566
2480 2023
9439 -3833
5892 -817...

output:

117881860624002905

result:

ok answer is '117881860624002905'

Test #14:

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

input:

65847
-6681 6938
7647 -7200
-1211 -2950
-8892 -9275
5061 5883
8383 9851
-8732 -1117
-9890 2245
-9342 9492
6328 -284
-5810 7198
-5679 3346
-2498 -3187
7251 4943
-2153 -9453
9271 -7836
-5752 2679
-2665 9031
-8074 -8886
-7781 1324
-9067 -7325
6057 -3003
3599 7465
-9821 -1750
-4864 -8251
5549 -6844
-388...

output:

27753564481712500

result:

ok answer is '27753564481712500'

Test #15:

score: 0
Accepted
time: 19ms
memory: 7072kb

input:

61343
-8197 381
-8612 2108
7664 2642
2072 -6081
9181 -2575
-1490 -1162
4077 865
6320 603
-9951 -6284
-5140 7514
-6271 5059
6478 -1206
638 -2230
-5706 4266
8054 -8439
-7580 826
8704 9590
9778 -8522
5220 -8277
-8963 5648
-9005 -2177
-2804 6076
634 -1212
-4417 -2037
-1552 -4603
4207 9094
1837 5450
-139...

output:

23893091185994882

result:

ok answer is '23893091185994882'

Test #16:

score: 0
Accepted
time: 70ms
memory: 16540kb

input:

200000
2055 -861
-9547 -2284
-8265 -7635
5850 -6915
-3105 -8434
-4445 3896
-5078 6479
-4285 -5824
-3789 6980
-9084 6446
-772 -960
1623 -8367
1237 -8176
-72 -8081
-7668 -537
386 -6716
-3318 8633
4059 -7912
397 7430
2632 -6540
-7825 -5634
6646 694
3127 9363
9251 -3510
-9203 -6726
-2594 8005
-9479 -931...

output:

251783697110252138

result:

ok answer is '251783697110252138'

Test #17:

score: 0
Accepted
time: 72ms
memory: 16824kb

input:

200000
9303 658
-9166 5533
1655 -3492
6062 4299
-5508 -8358
3240 4514
-6264 -6904
4441 2996
-6353 3949
-2594 -8511
4731 8211
5274 9265
3272 3279
8117 5533
-2476 -2094
-3024 -8438
-5622 2079
-4184 -413
-154 8028
7063 -171
5054 -7693
-4940 2105
-5121 7833
-2135 -6325
2286 2486
-1377 9886
-1123 2619
51...

output:

251896628584186426

result:

ok answer is '251896628584186426'

Test #18:

score: 0
Accepted
time: 72ms
memory: 16584kb

input:

200000
6976 8483
2848 -418
-8642 2106
9610 -7684
231 9616
77 918
4426 -1289
1870 2555
3925 7005
-556 6231
-1158 -9594
7232 -1939
9140 1302
-5745 4892
-4662 3540
-407 5720
2194 -3321
573 6894
-9739 -2977
-9965 6620
2093 9861
9725 -8805
-2005 8204
6539 4099
-1651 -4435
3586 3005
-3067 -6434
3413 442
-...

output:

252049797513752209

result:

ok answer is '252049797513752209'

Test #19:

score: 0
Accepted
time: 10ms
memory: 6352kb

input:

46808
-2220 3418
509 -5000
-2234 5880
7450 -7386
7757 -2309
2061 6977
4911 5973
4559 -4183
-94 -2545
9933 -6985
1503 2144
8835 3510
-7084 1639
6883 4305
4901 -7479
7833 -9822
-8289 -5309
247 -5191
-9206 1624
4652 6382
9839 -7407
-4136 6608
8750 -6714
-2558 -3310
-5627 247
7245 7854
-1937 5391
5391 4...

output:

13802454850360705

result:

ok answer is '13802454850360705'

Test #20:

score: 0
Accepted
time: 1ms
memory: 4000kb

input:

1035
6655 -7586
3793 1626
9294 -4640
-539 8775
8834 -7456
-4670 3600
-6092 8974
3504 9338
-8656 9723
-4477 3363
-2219 -8567
-5948 2164
1040 -9710
-1521 -8505
5149 6960
-2924 -1536
3826 552
8692 -1214
-9199 6166
-7151 2381
-9646 -4494
7948 3732
-7303 940
1134 5286
1172 5701
1166 -1599
4249 3235
-8558...

output:

7679463973474

result:

ok answer is '7679463973474'

Test #21:

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

input:

66150
9787 -5109
-6814 4533
-791 -7611
8803 -5019
3536 -6885
5690 607
-6640 -9607
-2803 7043
-9015 -2673
8633 5574
-6286 -1185
48 1620
-2497 -4147
4044 1438
-1075 5033
-5469 3968
-5599 771
4344 -4901
-4123 5118
6011 708
7510 -2679
7677 -889
6420 -8809
-1861 1218
-862 -7115
-7261 5254
-8686 -5384
-35...

output:

27671371209089513

result:

ok answer is '27671371209089513'

Test #22:

score: 0
Accepted
time: 72ms
memory: 16908kb

input:

200000
-4893 -7539
6408 6854
9551 6887
-5938 -3689
-5139 -6776
4912 1004
-8897 -3708
-139 -5414
6704 8718
1652 -5662
3141 6164
9345 6907
5548 -5814
-2310 3652
-6191 1800
9149 -3019
349 -1040
6473 863
2040 7604
-3287 7694
-3715 2038
5478 2282
3111 5581
-2070 8023
-8182 4997
6344 2970
2872 8486
-7860 ...

output:

250666455123743229

result:

ok answer is '250666455123743229'

Test #23:

score: 0
Accepted
time: 34ms
memory: 10420kb

input:

111141
2843 -5577
-6415 3323
2318 570
-8872 -2856
-2571 -820
-3833 -7350
2321 9471
-168 2413
1326 -797
-1812 -2526
258 -133
-36 88
2835 2405
-1256 3677
-3935 -3069
-7382 2991
8026 -4234
6562 2747
9061 -138
-2687 -7425
494 -66
3195 -5938
-1470 -667
433 1610
2558 -5979
-1169 4055
-7228 3816
-8058 2616...

output:

31414697710245821

result:

ok answer is '31414697710245821'

Test #24:

score: 0
Accepted
time: 58ms
memory: 13504kb

input:

150860
435 -1849
-4071 2296
6742 -4437
-1246 -1788
-3008 2897
1306 -2150
2645 -2723
-117 -8527
-2729 -4791
-2859 -9276
101 -630
-9703 1611
-53 325
1330 1294
155 1470
-3949 -8043
-5090 -2526
-189 20
-26 64
6351 7549
-803 1335
-6036 -4711
508 -364
2103 -3747
-29 -1293
-9143 -3030
-3015 -7332
9540 -494...

output:

58027397292635245

result:

ok answer is '58027397292635245'

Test #25:

score: 0
Accepted
time: 48ms
memory: 12364kb

input:

136078
-8304 -2517
-6465 1663
-786 5653
6640 -7236
-2115 3833
-2893 -1404
5619 -5110
3637 9248
-4 4352
-175 -7245
-277 7838
-3747 -5511
2165 2345
2391 -951
3368 -836
-2415 4893
-1933 -3201
2069 -2119
-2400 -3433
-3676 2296
-541 -6934
-415 -1432
-2237 -7280
536 -748
7295 -1342
1455 -357
1608 1898
-31...

output:

47108166311556545

result:

ok answer is '47108166311556545'

Test #26:

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

input:

32301
3835 -1456
1639 3738
1236 2964
-3419 -5387
221 2378
-545 5029
1743 -2886
-8085 -3997
-4365 -1121
308 -6601
-4369 -7047
4466 -5072
5953 -378
-2486 1308
538 3383
1742 1148
-1734 -4079
6173 -5719
3150 -774
165 80
-273 5018
371 1873
6018 -2921
-4081 -7843
-3130 -1418
-6659 496
-6924 4966
-2378 594...

output:

2727260330338673

result:

ok answer is '2727260330338673'

Test #27:

score: 0
Accepted
time: 54ms
memory: 14708kb

input:

160390
1850 -1307
7857 -5670
6763 -4659
7902 -3218
2833 1029
4812 -4982
2342 -1159
3135 -5791
-1370 -862
-6751 -1019
-8073 2213
85 954
-1049 -695
4071 8970
-3332 2631
-5184 -7123
1866 843
-789 389
-5059 6582
-3024 2828
743 -3015
1919 2051
1544 -8172
-5314 -440
-434 -839
-5501 -7948
-102 -3923
-476 6...

output:

66175006029004085

result:

ok answer is '66175006029004085'

Test #28:

score: 0
Accepted
time: 65ms
memory: 17136kb

input:

200000
-1020 9120
5541 -3980
5153 2969
333 8694
-3301 -9411
-672 3124
101 543
594 -2451
8242 3170
394 3505
-107 3313
1563 2911
1394 782
1383 -1244
7582 1582
-7726 4035
-6681 5435
-291 3905
-2055 1503
4581 -873
-1538 -2239
924 -7461
-2275 -1561
2189 -8381
5830 -7854
-4703 3248
817 -337
4122 -3751
103...

output:

101831775607077346

result:

ok answer is '101831775607077346'

Test #29:

score: 0
Accepted
time: 63ms
memory: 15416kb

input:

194440
-2422 -8257
-949 715
7142 -4966
-3681 -7899
-97 636
1109 8155
1343 430
-4782 -6538
33 1712
-2267 -5832
2635 -1158
-286 -8194
-4149 4627
-6060 -7332
1860 -7993
832 8068
1243 -7664
148 -589
-4081 2023
-1667 -1284
562 -1836
2307 -3049
-546 -323
8095 5626
1445 -3174
145 414
2705 -6229
-3222 1818
...

output:

96568792662722210

result:

ok answer is '96568792662722210'

Test #30:

score: 0
Accepted
time: 74ms
memory: 16748kb

input:

200000
-6870 -298
-243 168
-9585 -805
3576 -625
-3991 -2306
5145 2581
6695 4560
176 601
-776 3080
6813 -4367
58 -1127
-190 57
122 4963
1160 8010
-3340 -8851
3275 4638
-7317 -4835
436 -1615
5032 7822
-2299 5520
357 -50
-773 918
2737 -2024
28 820
5635 -1067
5831 8123
725 -4112
1375 -111
5808 -1022
841...

output:

102386424910883129

result:

ok answer is '102386424910883129'

Test #31:

score: 0
Accepted
time: 16ms
memory: 6584kb

input:

53382
6518 -4175
-7679 -5005
-2236 -8255
6422 -3603
334 3271
3481 -1946
-3742 3171
1279 -6425
-475 644
-9430 160
-5689 5922
-1421 -2734
2168 3010
-716 1462
-1726 1250
-2885 -6689
-2388 -1092
348 1822
-1225 -864
-5901 2862
-5722 7948
9339 -2626
9232 -685
4665 26
1676 4393
-5385 -5919
-3533 -6137
-169...

output:

7268699398547152

result:

ok answer is '7268699398547152'

Test #32:

score: 0
Accepted
time: 68ms
memory: 16404kb

input:

200000
-1724 -150
8054 1741
252 -5613
-1559 8307
-9768 -285
-184 4025
-5859 7841
1853 1406
-3730 -8871
455 1689
-130 -4193
1287 -3815
-1374 -926
3408 -2373
-7989 794
-8362 -765
3731 -8342
-1287 -863
-4632 3539
33 64
4028 1197
10 415
-2081 -2540
-4514 7545
-1488 -845
7910 -4339
-9235 -1194
2053 8379
...

output:

103084100909129570

result:

ok answer is '103084100909129570'

Test #33:

score: 0
Accepted
time: 1ms
memory: 3716kb

input:

556
1988 6476
2141 -75
-7227 -2044
216 869
-2645 -5399
4889 4405
5966 4044
-789 -1786
-851 -854
2217 2454
8828 -611
435 5512
8502 3037
-114 679
-6490 -5138
-4499 4795
351 -2257
-3782 -7381
3789 8217
-4484 516
-213 314
2067 2766
4024 4267
425 1069
1973 2808
7810 4751
-4521 -1969
-389 1479
8963 -2352
...

output:

948393742313

result:

ok answer is '948393742313'

Test #34:

score: 0
Accepted
time: 21ms
memory: 6884kb

input:

56943
-2819 -5099
-3303 -2020
-3983 3832
404 -84
-2285 4728
864 1285
-1799 -1212
-3830 -5341
-2073 5033
-5630 7261
3455 1273
-2974 6
5157 6320
-46 908
5731 -334
1872 3012
-406 684
82 243
-8367 -1976
2391 -4145
480 -4460
1736 2416
-7813 -2216
-9079 302
-2341 -1574
-1266 -8081
2100 -1095
-6747 490
-29...

output:

8334443280437026

result:

ok answer is '8334443280437026'

Test #35:

score: 0
Accepted
time: 23ms
memory: 8516kb

input:

83360
7192 -377
1860 8968
-5149 -7327
-1935 -1134
4526 -1169
5727 7530
2315 2287
-1093 -1032
-6804 5469
4589 8496
516 4062
355 -170
7735 -4051
2262 -1242
4418 -2124
-4540 620
69 32
-5076 -2330
-3141 1326
1570 4691
-5644 -3749
109 1607
352 -212
-7425 3662
-8113 -5297
3804 -2653
-1265 92
-88 1222
-551...

output:

18079751405592680

result:

ok answer is '18079751405592680'

Test #36:

score: 0
Accepted
time: 76ms
memory: 17032kb

input:

200000
692 -1201
-1282 -8312
-7836 707
2358 -1180
1002 285
440 1075
2061 -8749
-1229 -1251
9237 1046
-6614 6956
5195 1152
665 4936
4454 5129
-822 3897
-1129 -8402
6889 2120
-6672 2516
6062 4849
1659 -5876
-3270 -848
6676 -1834
-931 -4281
-1006 640
44 99
2699 6280
309 5022
-2421 4080
-3069 184
-5448 ...

output:

102120147661439009

result:

ok answer is '102120147661439009'

Test #37:

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

input:

30389
-3582 1773
6219 3599
-1023 -8206
1896 -2713
2880 2732
2437 -2058
-409 -1014
1692 2603
1047 1877
-5647 5210
9115 2680
-3470 -2961
-1344 890
-8863 3
-432 7203
-4115 -8374
5366 -3942
2839 4541
-2456 -4200
62 -86
5426 1463
-6458 -898
-5043 -3566
4322 4595
-4170 -6276
1591 -2591
5645 7929
1262 1208...

output:

2430446882441509

result:

ok answer is '2430446882441509'

Test #38:

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

input:

50480
1160 5800
-1890 -1380
-3640 4920
-75 121
-261 333
1677 -1131
828 3204
6426 -3738
-284 -192
-180 -1080
297 99
370 160
-4257 -3053
-2993 -5576
-1792 -2464
240 -1860
-650 -1390
-816 208
1349 1064
-140 -280
-288 -198
-3000 -5650
376 1440
1147 -259
0 -3055
2074 -1598
5772 3404
3478 -94
1161 -1591
-...

output:

1766240243657860

result:

ok answer is '1766240243657860'

Test #39:

score: 0
Accepted
time: 58ms
memory: 15600kb

input:

175854
159 -318
-475 -1710
1236 -2472
-2006 -5310
-4200 2016
-847 -1331
-605 -2904
-1701 -1782
-5808 3630
-1156 -612
4256 2660
-3692 -639
1023 -4185
4902 3648
2508 -456
-187 -153
-4309 -5977
2900 1160
1683 918
0 0
880 660
468 324
133 874
-152 -1292
121 -231
-4152 -2076
6360 3657
-3588 -78
-118 -1239...

output:

20466290017309490

result:

ok answer is '20466290017309490'

Test #40:

score: 0
Accepted
time: 58ms
memory: 15280kb

input:

170548
2184 -2496
1704 1704
-1088 -3060
-4089 -1692
0 -1536
2336 511
-92 -299
1595 -495
-2800 3360
-5382 4002
-1518 3588
1060 -100
672 -240
0 0
1476 2296
-2912 616
10 10
-2132 -3198
42 714
-650 -182
-7398 -1370
-1512 -7896
0 0
-4620 -1716
-3753 417
656 369
1485 189
275 55
-390 390
-1666 2618
-1425 3...

output:

18797135896760234

result:

ok answer is '18797135896760234'

Test #41:

score: 0
Accepted
time: 50ms
memory: 14844kb

input:

175454
588 2352
-602 688
675 1125
-770 -1430
-496 -806
-588 -3444
148 7548
-338 -845
1896 7426
-968 264
102 60
1044 232
-1078 -3619
-756 -294
260 -936
5808 -3432
4290 -78
117 0
-2632 336
-4559 -1746
96 -336
-1785 -1260
2448 -2142
32 -200
-170 1615
1072 737
-26 182
1230 246
-5490 -3904
2880 -270
5289...

output:

18450889781612821

result:

ok answer is '18450889781612821'

Test #42:

score: 0
Accepted
time: 40ms
memory: 11300kb

input:

132641
-258 -602
1740 -1680
258 1548
230 -575
-76 0
-135 126
-2156 2464
-2562 -854
432 270
63 -2331
837 1242
-288 -96
-2478 2124
-4000 -7875
-2496 585
117 9
-1564 552
-690 -1495
-1550 -400
-1111 3636
2407 -1162
-512 -720
-130 156
3776 5074
-2412 -2211
0 0
1316 -282
134 -67
-520 -780
0 0
-1562 1775
2...

output:

11098811849824724

result:

ok answer is '11098811849824724'

Test #43:

score: 0
Accepted
time: 48ms
memory: 13328kb

input:

156919
1260 392
1404 -972
-1520 -4000
246 123
0 0
1596 2352
1989 -4437
-3213 0
602 2193
-882 -882
-696 696
1860 1488
-774 -2666
-1232 -224
0 61
9052 1898
3915 -6210
2640 1188
2856 2448
-808 707
-4840 110
222 222
-1368 2880
-238 510
-3520 1496
1062 -288
-445 1780
40 32
3861 1188
55 -55
42 -138
-1288 ...

output:

15743765333523202

result:

ok answer is '15743765333523202'

Test #44:

score: 0
Accepted
time: 1ms
memory: 3952kb

input:

3433
-2167 1964
44 -300
6468 -39
116 1963
306 -243
-512 -6136
2934 9318
3304 355
-2523 2121
1911 -2560
4194 1050
12 -699
3068 -256
-540 902
6270 -633
-389 91
1184 165
-1446 -7122
-1290 -1168
34 -40
3693 7023
7353 -1167
-2426 366
986 1698
-291 1349
5132 1062
28 -3376
-1618 128
-47 429
-1866 -7041
209...

output:

13235580188389

result:

ok answer is '13235580188389'

Test #45:

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

input:

38848
-336 196
1800 25
0 -336
-80 3744
3400 3825
560 -2380
-213 -39
370 -490
266 658
2109 1517
408 544
-175 245
616 440
-105 -624
-75 200
70 69
-540 1050
1890 255
1120 -4840
168 -2100
1716 -572
-2482 731
-363 -253
396 -378
2394 -3129
2280 2715
-678 12
950 -76
-253 1540
-488 112
3192 2888
-231 -966
4...

output:

944682242398613

result:

ok answer is '944682242398613'

Test #46:

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

input:

21161
-2170 1340
2196 -4824
2295 2580
1611 -306
-1323 5565
1236 -84
530 1360
-3383 2295
1520 -6612
108 -28
-105 4662
1710 4482
1128 -828
189 -369
810 930
1408 -2976
456 1158
-434 -254
3264 -3328
792 24
-56 2709
436 -556
-2484 -3636
1728 -4976
4 240
-3340 7440
1340 -720
387 -39
2280 780
-879 708
-272...

output:

328018613280597

result:

ok answer is '328018613280597'

Test #47:

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

input:

20269
320 6880
3096 954
-493 2601
-90 -170
2156 2233
-3990 1960
-1026 -1620
144 -360
-4041 684
-69 135
-3619 2255
4589 3380
-404 -686
-437 266
-36 -100
-3164 3724
-60 312
-118 400
3237 -5603
18 134
5850 1224
949 -2210
-1440 -512
2193 357
3388 55
2528 6208
-273 559
-3276 -2338
30 -4440
-600 920
279 -...

output:

299807145636885

result:

ok answer is '299807145636885'

Test #48:

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

input:

1
1 2

output:

5

result:

ok answer is '5'

Test #49:

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

input:

12
-500 -870
-500 -871
-500 -870
1000 0
1001 0
1000 0
-500 870
-500 870
-500 870
-500 -870
1000 0
-500 870

output:

16121362

result:

ok answer is '16121362'