QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#799827 | #1452. Not Long Enough | maroonrk# | AC ✓ | 76ms | 17368kb | C++20 | 23.3kb | 2024-12-05 18:29:42 | 2024-12-05 18:29:45 |
Judging History
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'