ber_ker 2023-08-18 17:18 采纳率: 44.4%
浏览 3
已结题

c++求指导;【】‘’

谁能解一下
02:CSP-J2022-2解密
查看提交统计提问
总时间限制: 20000ms 单个测试点时间限制: 1000ms 内存限制: 262144kB
描述
给定一个正整数 k,有 k 次询问,每次给定三个正整数 ni, ei, di,求两个正整数 pi, qi,使 ni = pi × qi, ei × di = (pi − 1)(qi − 1) + 1。

输入
第一行一个正整数 k,表示有 k 次询问。
接下来 k 行,第 i 行三个正整数 ni, di, ei。
输出
输出 k 行,每行两个正整数 pi, qi 表示答案。
为使输出统一,你应当保证 pi ≤ qi。
如果无解,请输出 NO。
样例输入
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
样例输出
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()
{
    
    cin>>k;
    for(int i=1;i<=k;i++)
    {
        long long n,d,e;
        cin>>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)
        {
            cout<<l<<(l-1) ;
        }
        else
        {
            cout<<"no";
        }
        
    }
    
    return 0;
}

结果为wrong answer;

  • 写回答

2条回答 默认 最新

  • _L.Y.H._ 2023-08-18 17:22
    关注
    
    #include<bits/stdc++.h>
    using namespace std;
    int k;
    int main()
    {
        
        cin>>k;
        for(int i=1;i<=k;i++)
        {
            long long n,d,e;
            cin>>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)
            {
                cout<<l<<(l-1) ;
            }
            else
            {
                cout<<"NO";
            }
            
        }
        
        return 0;
    }
     
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月27日
  • 已采纳回答 8月19日
  • 创建了问题 8月18日

悬赏问题

  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值
  • ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
  • ¥20 gitlab 中文路径,无法下载
  • ¥15 用动态规划算法均分纸牌
  • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据