2022csp普及组真题:解密(decode)

题目

【题目描述】

给定一个正整数 k,有 k 次询问,每次给定三个正整数 ni , ei , di,求两个正整数 pi , qi, 使 ni = pi × qi ,  ei × di = (pi − 1)(qi − 1) + 1。

【输入格式】

从文件 decode.in 中读入数据。

第一行一个正整数 k,表示有 k 次询问。

接下来 k 行,第 i 行三个正整数 ni , di , ei。

【输出格式】

输出到文件 decode.out 中。

输出 k 行,每行两个正整数 pi , qi 表示答案。

为使输出统一,你应当保证 pi ≤ qi。

如果无解,请输出 NO。

【样例 1 输入】

10

770  77  5

633  1  211

545  1  499

683  3  227

858  3  257

723  37  13

572  26  11

867  17  17

829  3  263

528  4  109

【样例 1 输出】

2  385

NO

NO

NO

11  78

3  241

2  286

NO

NO

6  88

解法

#include<bits/stdc++.h>
using namespace std;
int k;
int main()
{
//freopen("decode.in","r",stdin);
//freopen("decode.out","w",stdout);
scanf("%d",&k);
for(int i=1;i<=k;i++)
{
long long n,d,e;
scanf("%lld %lld %lld",&n,&d,&e);
long long s=n-d*e+2;
long long r=(n-d*e+2)/2,l=1;
while(l<r)
{
int mid=(l+r)/2;
if(mid*(s-mid)>=n)
{
r=mid;
}
else
{
l=mid+1;
}
}
if(l*(s-l)==n)
{
printf("%lld %lld\n",l,(s-l));
}
else
{
printf("NO\n");
} } return 0;
}

最新文章

  1. 判断webkit中的js引擎是否是v8
  2. android- Auto Monitor Logcat
  3. 【 D3.js 入门系列 --- 0 】 简介和安装
  4. Push failed: Failed with error: fatal: Could not read from remote repository.
  5. [转]Posix-- 互斥锁 条件变量 信号量
  6. ASP.NET页面跳转的三种方法比较
  7. public static void main(String[] args){} 关于Java main()方法
  8. Maven与Eclipse使用中遇到的问题解决之道
  9. js模拟jq获取id
  10. Android MediaCodec硬编兼容性测试方案
  11. 使用make
  12. python练习题-day17
  13. Confluence 6 编辑自定义 Decorators
  14. Delphi动态配置ODBC数据源--SQL Server版本
  15. APK防反编译技术
  16. 【vue基础学习】vue.js开发环境搭建
  17. uml 知识点
  18. Linux下捕捉信号
  19. bzoj4836 [Lydsy2017年4月月赛]二元运算
  20. 剑指Offer - 九度1519 - 合并两个排序的链表

热门文章

  1. MariaDB数据库 主-从 部署
  2. Flink SQL 子图复用逻辑分析
  3. 【Elasticsearch】ES选主流程分析
  4. [Python]-pandas模块-机器学习Python入门《Python机器学习手册》-03-数据整理
  5. day40-网络编程02
  6. keycloak~资源的远程授权
  7. Activiti 7 源码学习
  8. Elasticsearch 快照生命周期管理 (SLM) 实战指南
  9. 使用 Elastic Stack 分析地理空间数据 (二)
  10. 【前端必会】使用indexedDB,降低环境搭建成本