2 条题解
-
1
#include<bits/stdc++.h> using namespace std; #define int long long int k,n,d,e; signed main(){ cin>>k; while(k--){ cin>>n>>e>>d; int PPQ=n-e*d+2;//p plus q int PMQ=sqrt(PPQ*PPQ-4*n);//p minus q int p=(PPQ-PMQ)/2; int q=PPQ-p; if(n==p*q&&e*d==(p-1)*(q-1)+1)printf("%d %d\n",p,q); else printf("NO\n"); } return 0; }
-
1
#include<bits/stdc++.h> using namespace std; int k; long long n,e,d; bool chek(long long x){ long long q = n + 2 - e * d - x; return x * q <= n; } void chek1(long long p,long long q){ if(p * q == n){ cout<<p<<' '<<q<<endl; }else{ cout<<"NO"<<endl; } return ; } void erfen(){ long long m=n + 2 - e * d ; long long left = 0,right = m/2+1; while(left+1<right){ long long mid=(left + right) / 2; if(chek(mid)){ left = mid; }else{ right = mid; } } chek1(left,m-left); return ; } int main(){ cin>>k; for(int i = 1;i<=k;i++){ cin>>n>>e>>d; erfen(); } return 0; }
- 1
信息
- ID
- 7633
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 2
- 标签
- 递交数
- 47
- 已通过
- 12
- 上传者