#pragma GCC optimize("Ofast") #pragma GCC target("avx2") #define rd_init() char*rp=({char*mmap();mmap(0l,1l<<25,1,2,0,0ll);}) #define rd() ({int _v=0,_c;while(_c=*rp++-48,_c>=0)_v=_v*10+_c;_v;}) #define wt(v) ({ulong _z=v;do*--wp=_z%10+48;while(_z/=10);}) #define wt1(v) ({char wbuf[64],*wp=wbuf+sizeof wbuf;wt(v);write(1,wp,wbuf+sizeof wbuf-wp);}) #define repeat(e) for(typeof(e)_=e;_--;) #define max(a,b) (a>=b?a:b) typedef unsigned long ulong; int main(){ rd_init(); int n=rd(); long a0=0,a1=0; long b0=0,b1=0; repeat(n){ long x=rd(); long y=rd(); long c=(x==a0?x:0)+b0; long d=(x==a1?x:0)+b1; long e=(y==a0?y:0)+b0; long f=(y==a1?y:0)+b1; a0=y; a1=x; b0=max(c,d)+(x==y?x:0); b1=max(e,f)+(x==y?x:0); } wt1(max(b0,b1)); _exit(0); }