团队题目,只得了25分,大佬帮看看(有回关)
  • 板块题目总版
  • 楼主yuhaosheng
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/7/30 19:16
  • 上次更新2024/7/30 19:55:15
查看原帖
团队题目,只得了25分,大佬帮看看(有回关)
1297817
yuhaosheng楼主2024/7/30 19:16

题目地址

这是我的代码:

#include<bits/stdc++.h>
using namespace std;
long long a[100000009];
int main(){
	a[1]=0;
	a[2]=1;
	for(int i=3;i<=1e7;i++){
		a[i]=a[i-1]+a[i-2];
	}
	int T;
	cin>>T;
	for(int t=1;t<=T;t++){
		int n;
		cin>>n;
		int l=0;
		for(int i=1;i<=n+1;i++){
			if(a[i]==n){
				cout<<0<<" "<<0<<" "<<a[i]<<endl;
				l++;
				break;
			}
		}
		if(!l){
			l=0;
			for(int i=1;i<=n+1;i++){
				for(int j=1;j<=i;j++){
					if(a[i]+a[j]==n){
						cout<<0<<" "<<a[j]<<" "<<a[i]<<endl;
						l++;
						break;
					}
				}
				if(l){
					break;
				}
			}
			if(!l){
				l=0;
				for(int i=1;i<=n+1;i++){
					for(int j=1;j<=i;j++){
						for(int k=1;k<=j;k++){
							if(a[i]+a[j]+a[k]==n){
								cout<<a[k]<<" "<<a[j]<<" "<<a[i]<<endl;
								l++;
								break;
							}
						}
						if(l)break;
					}
					if(l)break;
				}
				if(!l){
					cout<<-1<<endl;
				}
			}
		}	
	}
    return 0;
}
2024/7/30 19:16
加载中...