用C++实现信奥题 P9579 「Cfz Round 1」Elevator)
P9579 「Cfz Round 1」Elevator题目背景电梯是一个可以让人充分思考的空间。题目描述给定两个长度为nnn的数组a,ba,ba,b。我们称序列ppp是满足条件的设ppp的长度为mmm当且仅当p11p_11p11对于所有的1≤im1\le im1≤im都有∣pi−pi1∣1|p_i-p_{i1}|1∣pi−pi1∣1对于所有的1≤k≤n1\le k\le n1≤k≤n都存在一个有序数对(i,j)(i,j)(i,j)满足1≤ij≤m1 \le i j \le m1≤ij≤m且piakp_ia_kpiakpjbkp_jb_kpjbk。你需要输出所有满足条件的序列ppp中ppp的长度的最小值。输入格式第一行一个整数nnn。接下来nnn行第iii行两个整数ai,bia_i,b_iai,bi。输出格式一个整数表示所有满足条件的序列ppp中ppp的长度的最小值。输入输出样例 #1输入 #12 3 2 2 5输出 #17输入输出样例 #2输入 #24 4 7 10 8 9 11 4 2输出 #218说明/提示【样例解释 #1】序列ppp的长度的最小值为777此时的序列ppp为{1,2,3,2,3,4,5}\{1,2,3,2,3,4,5\}{1,2,3,2,3,4,5}。【数据范围】对于所有数据1≤n≤5×1051 \le n \le 5\times10^51≤n≤5×1051≤ai,bi≤1091 \le a_i,b_i \le 10^91≤ai,bi≤109保证ai≠bia_i \neq b_iaibi。本题采用捆绑测试。子任务编号分值n≤n \len≤特殊性质111999111无2229995×1055\times10^55×105保证aibia_i b_iaibi3332121215×1055\times10^55×105ai,bia_i,b_iai,bi在[1,109][1,10^9][1,109]内随机生成444272727200020002000无5553434345×1055\times10^55×105无C实现#includeiostream#includealgorithmusingnamespacestd;constintN500005;intn,cnt,maxx,minn,ans;pairint,ints[N];intread(){intx0;charagetchar();while(a0||9a)agetchar();while(0aa9)x(x1)(x3)(a^48),agetchar();returnx;}voidwrite(intx){if(x9)write(x/10);putchar(x%10|48);}intmain(){nread();for(inti1;in;i){s[cnt].firstread(),s[cnt].secondread();if(s[cnt].firstmaxx)maxxs[cnt].first;if(s[cnt].secondmaxx)maxxs[cnt].second;if(s[cnt].firsts[cnt].second)cnt--;}minnmaxx;sort(s1,s1cnt);for(inticnt;i1;--i)if(s[i].first!s[i-1].firstminns[i].second){ans(min(minn,s[i].first)-s[i].second)1;minns[i].second;if(ansmaxx-minn)ansmaxx-minn;}write(maxxans);return0;}后续接下来我会不断用C来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现记录日常的编程生活、比赛心得感兴趣的请关注我后续将继续分享相关内容