求助:TLE
  • 板块学术版
  • 楼主wanghaozhe
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/12/4 16:42
  • 上次更新2023/10/27 00:29:46
查看原帖
求助:TLE
760690
wanghaozhe楼主2022/12/4 16:42

rt,一关 题目描述

时间限制:1s    空间限制:65536KB


描述
给出一个自然数M.找到所有连续的自然段,其总和为M.

例如:M = 10000

1998+1999+2000+2001 +2002= 10000

输入格式
一个自然数M. 10 <= M <= 2000000

输出格式
每行包含两个自然数,表示连续自然段的开始和结束,用空格分隔。所有行根据第一个数字按从小到大升序排序,保证给定数据至少有一个解。

样本输入
10000


样本输出
18 142
297 328
388 412
1998 2002


提示

我的代码

#include<iostream> 
using namespace std;
int main(){
	long long m;
	cin>>m;
	for(int i=0;i<=m/2;i++)
	{
		for(int j=i+1;j<=m/2;j++)
		{
			long long ans=0;
			for(int k=i;k<=j;k++)
			{
				ans=ans+k;
				if(ans>m) break;
			}
			if(ans>m) break;
			else if(ans==m) cout<<i<<" "<<j<<endl;
		}
	}
	return 0;
}
2022/12/4 16:42
加载中...