传送门

思维题。

考虑维护两个数列的前缀和a1,a2,a3,...,ana_1,a_2,a_3,...,a_na1​,a2​,a3​,...,an​和b1,b2,b3,...,bnb_1,b_2,b_3,...,b_nb1​,b2​,b3​,...,bn​。不妨设an≤bna_n\le b_nan​≤bn​。

由于两个数列每个数都在1~n之间,所以说对于每一个aia_iai​总能找到一个比aia_iai​小且最接近的bjb_jbj​,使得0≤ai−bj≤n−10\le a_i-b_j\le n-10≤ai​−bj​≤n−1,然后由于算上a0a_0a0​一共有n+1n+1n+1对这样的(ai,bj)(a_i,b_j)(ai​,bj​),这样的话根据抽屉原理一定会有两对的差量是相同的,不妨设(ai,bj)(a_i,b_j)(ai​,bj​)与(ai′,bj′)(a_i',b_j')(ai′​,bj′​)的差量是相同的,那么说明ai−ai′=bj−bj′a_i-a_i'=b_j-b_j'ai​−ai′​=bj​−bj′​,于是我们就成功找到了一个可行解。

代码:

#include<bits/stdc++.h>
#define ll long long
#define N 1000005
using namespace std;
inline int read(){
	int ans=0;
	char ch=getchar();
	while(!isdigit(ch))ch=getchar();
	while(isdigit(ch))ans=(ans<<3)+(ans<<1)+(ch^48),ch=getchar();
	return ans;
}
int n,a[N],b[N];
ll s1,s2,S1=0,S2=0;
map<int,pair<int,int> >mp;
inline void print(int l,int r){
	printf("%d\n",r-l);
	for(int i=l+1;i<=r;++i)printf("%d ",i);
	puts("");
}
inline void solve(int a[],int b[],bool f){
	s1=0,s2=0,mp[0]=make_pair(0,0);
	for(int i=1,j=0;i<=n;++i){
		s1+=a[i];
		while(j<n&&s2+b[j+1]<=s1)s2+=b[++j];
		int delta=s1-s2;
		if(mp.count(delta)){
			if(!f)print(mp[delta].first,i),print(mp[delta].second,j);
			else print(mp[delta].second,j),print(mp[delta].first,i);
			return;
		}
		mp[delta]=make_pair(i,j);
	}
}
int main(){
	n=read();
	for(int i=1;i<=n;++i)S1+=(a[i]=read());
	for(int i=1;i<=n;++i)S2+=(b[i]=read());
	if(s1<s2)solve(a,b,0);
	else solve(b,a,1);
	return 0;
}

最新文章

  1. UICollectionViewCell定制Button
  2. linux命令 - export - 设置环境变量
  3. 《objective-c基础教程》学习笔记(十一)—— 类别
  4. H3C Series Router MSR26-00与F3736 VPN IP SEC
  5. django 自定义标签和过滤器
  6. 软件工程 speedsnail 冲刺5
  7. Java设计模式系列之状态模式
  8. iphone绘图的几个基本概念CGPoint、CGSize、CGRect、CGRectMake、window(窗口)、视图(view)
  9. WCF之各种WCF引用方式
  10. Linux系统编程(37)—— socket编程之原始套接字
  11. 用SqlBulkCopy批量插入数据到SqlServer数据库表中
  12. Commons Codec基本使用(转载)
  13. javaWeb学习总结(10)- Filter(过滤器)常见应用(3)
  14. 递归调用里的性能问题(js)
  15. 个人工作中ssd、audio python脚本总结
  16. Zookeeper运维问题集锦
  17. 【PMP】项目管理ITTO概述
  18. 【ASP.NET】 Config Error: This configuration section cannot be used at this path.
  19. [Stats385] Lecture 05: Avoid the curse of dimensionality
  20. Presto 学习参考资料

热门文章

  1. Application HookMainWindow
  2. wireshark的过滤
  3. js前台遍历后台返回的Datatable数据
  4. Web Deploy
  5. C#累加器函数Aggregate用法 讲解
  6. 本博客已经迁移去http://blog.brightwang.com/
  7. HTML 练习 做简历表
  8. 【转】Android Shape绘制虚线在手机端查看是实线的问题
  9. Jakarta项目
  10. 第八章&#160;高级搜索树 (a3)伸展树:算法实现