wa求解
查看原帖
wa求解
1122530
elpsconr楼主2024/7/10 18:47

为啥提前输出-1会wa五个点,没道理的啊,我感觉这个特判没问题啊,为啥会wa,求wa数据 wa代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e5+6;
ll n,m,x,a[N];
ll ans=4e18;
void solve()
{
   cin>>n>>m;
   ll x=n*n;
   if(m>x)
   {
    cout<<-1<<endl;return;
   }
   if(m<=n) 
   {
    cout<<m<<endl;return;
   } 
   for(ll i=1;i<=n;++i)
   {
    ll y=((m+i-1)/i)*i;
    if(y>=m&&((m+i-1)/i)<=n)
    {
        ans=min(ans,y);
    }
    if((m-i+1)/i<i) break;
   }
   if(ans!=4e18) cout<<ans<<endl;
   else cout<<-1<<endl;
}
int main()
{
    int t=1;
    //cin>>t;
    while(t--)
    solve();
    return 0;
}

ac代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e5+6;
ll n,m,x,a[N];
ll ans=4e18;
void solve()
{
   cin>>n>>m;
   //ll x=n*n;
   //if(m>x)
   //{
   // puts("-1");return;
   //}
   if(m<=n) 
   {
    cout<<m<<endl;return;
   } 
   for(ll i=1;i<=n;++i)
   {
    ll y=((m+i-1)/i)*i;
    if(y>=m&&((m+i-1)/i)<=n)
    {
        ans=min(ans,y);
    }
    if((m-i+1)/i<i) break;
   }
   if(ans!=4e18) cout<<ans<<endl;
   else cout<<-1<<endl;
}
int main()
{
    int t=1;
    //cin>>t;
    while(t--)
    solve();
    return 0;
}
2024/7/10 18:47
加载中...