40求调
  • 板块P1249 最大乘积
  • 楼主Gao_l
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/9/20 14:27
  • 上次更新2023/11/2 19:00:20
查看原帖
40求调
750728
Gao_l楼主2023/9/20 14:27

代码

#include<bits/stdc++.h>
using namespace std;

#define int __int128

int n, m, cnt=2,sum=1,a[10005],x,y;

inline __int128 read(){
    __int128 x = 0, f = 1;
    char ch = getchar();
    while(ch < '0' || ch > '9'){
        if(ch == '-')
            f = -1;
        ch = getchar();
    }
    while(ch >= '0' && ch <= '9'){
        x = x * 10 + ch - '0';
        ch = getchar();
    }
    return x * f;
}


inline void print(__int128 x){
    if(x < 0){
        putchar('-');
        x = -x;
    }
    if(x > 9)
        print(x / 10);
    putchar(x % 10 + '0');
}

signed main(){
    n = read();
    while(x<n){
		a[++y]=cnt;
		x+=cnt;
		cnt++;
	}
	a[x-n-1]=0;
    for(int i=1;i<=y;i++){
		if(a[i]!=0){
            print(a[i]);
            cout << " ";
        }
		if(a[i]!=0)sum*=a[i];
	}
    cout << "\n";
    print(sum);
}
2023/9/20 14:27
加载中...