目录
一、题目
二、解决代码
(1)版本一(报错:超时)
代码分析
(2)版本二(不会超时)
代码分析
(3)版本三(最终精简版)
编辑代码分析
一、题目
二、解决代码
(1)版本一(报错:超时)
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long N;
cin >> N;
long long a,b;
long long v_min=0,v_max=0;
long long ji_min[N], ji_max[N];
for(int i=0; i<N; i++)
{
cin >> a >> b;
v_min = a / b;
v_max = a / b;
for(int j=1; j<=a; j++)
{
if(a/j==b)
{
if(j<v_min)
{
v_min = j;
}
if(j>v_max)
{
v_max = j;
}
}
if(a/j<b)
{
break;
}
}
ji_min[i] = v_min;
ji_max[i] = v_max;
}
v_min = ji_min[0];
v_max = ji_max[0];
for(int i=0; i<N; i++)
{
if(ji_min[i]>v_min)
{
v_min = ji_min[i];
}
if(ji_max[i]<v_max)
{
v_max = ji_max[i];
}
}
cout << v_min << " " << v_max;
return 0;
}
代码分析
(2)版本二(不会超时)
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long N;
cin >> N;
long long a,b;
long long v_min=0,v_max=0;
long long ji_min[N], ji_max[N];
for(int i=0; i<N; i++)
{
cin >> a >> b;
v_min = a/b;
v_max = a/b;
for(int j=v_max; a/j==b ; j--)
{
v_min = j;
}
ji_min[i] = v_min;
ji_max[i] = v_max;
}
v_min = ji_min[0];
v_max = ji_max[0];
for(int i=0; i<N; i++)
{
if(ji_min[i]>v_min)
{
v_min = ji_min[i];
}
if(ji_max[i]<v_max)
{
v_max = ji_max[i];
}
}
cout << v_min << " " << v_max;
return 0;
}
代码分析
(3)版本三(最终精简版)
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long N;
cin >> N;
long long a,b;
long long v_min=0,v_max=0;
for(int i=0; i<N; i++)
{
cin >> a >> b;
if(i==0)
{
v_min = a/(b+1);
v_max = a/b;
}
else
{
if(a/(b+1)>v_min)
{
v_min = a/(b+1);
}
if(a/b<v_max)
{
v_max = a/b;
}
}
}
cout << v_min+1 << " " << v_max;
return 0;
}