社区讨论

两个程序有什么区别吗 为啥一个60一个100

P8814[CSP-J 2022] 解密参与者 5已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@lo1a6cxd
此快照首次捕获于
2023/10/22 17:43
2 年前
此快照最后确认于
2023/11/02 18:01
2 年前
查看原帖
60分:
C
#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
long long k,n,e,d;
long long p,q;
int main(){
//	freopen("decode1.in","r",stdin);
//	freopen("decode1.txt","w",stdout);
	cin>>k;
	for(int i=1;i<=k;i++){
		cin>>n>>e>>d;
		p=(sqrt((n-e*d+2)*(n-e*d+2-4*n)+n-e*d+2)/2;
		q=n-e*d+2-p;
		if(p*q==n && p && q && e*d==(p-1)*(q-1)+1) cout<<min(p,q)<<" "<<max(p,q)<<endl;
		else cout<<"NO"<<endl;	
	}
	return 0;
}
AC:
C
#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
long long k,n,e,d;
long long p,q;
int main(){
//	freopen("decode1.in","r",stdin);
//	freopen("decode1.txt","w",stdout);
	cin>>k;
	for(int i=1;i<=k;i++){
		cin>>n>>e>>d;
		long long f=n-e*d+2;
		p=(sqrt(f*f-4*n)+f)/2;
		q=f-p;
		if(p*q==n && p && q && e*d==(p-1)*(q-1)+1) cout<<min(p,q)<<" "<<max(p,q)<<endl;
		else cout<<"NO"<<endl;	
	}
	return 0;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...