re?双指针
查看原帖
re?双指针
1169121
zhangyuanjun楼主2024/1/17 22:10
#include<bits/stdc++.h>
using namespace std;
const int maxn=2e6+3;
int cnt[maxn];
int main(){
	int n;
	scanf("%d",&n);
	int r=2;
	for(int i=1;i<=n;i++){
		cnt[i]=cnt[i-1]+i;
	}
	for(int l=1;l<=n;l++){
		while(l<=n&&cnt[r]-cnt[l-1]<=n) r++;
		r--;
		if(cnt[r]-cnt[l-1]==n) printf("%d %d\n",l,r);
	}
	return 0;
}
2024/1/17 22:10
加载中...