为什么会RE
2024-05-21 18:12:44
发布于:广东
21阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
const int N=0x3f3f3f;
int dd[N],d[N];
int main(void)
{
int n,g=0,gg=0,mn=0;
scanf("%d",&n);
int a[n],b[n],c[n],f;
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(int i=0;i<n;i++)
{
scanf("%d",&b[i]);
}
for(int i=0;i<n;i++)
{
c[i]=a[i]-b[i];
f=abs(c[i]);
dd[f]++;
}
for(int i=0;i<0x3f3f3f;i++)
{
for(int j=0;j<n;j++)
{
mn=min(mn,c[i]);
for(int o=0;o<n;o++)
{
if(c[o]==mn)
{
c[o]=0;
}
}
}
d[g]=mn;
g++;
if(dd[i]==0)
{
continue;
}
else{
printf("%d",d[gg]);
printf("%d",dd[gg]);
gg++;
}
}
return 0;
}
全部评论 1
输入数据可能会出现负数,如果用数组存的话,因为索引是负数,因此会出现数组越界(访问到不存在的内存)等问题,从而产生RE。
2024-05-21 来自 新加坡
0一个可行的方案是在桶排的基础上增加偏移量,即把所有的数字增加相同的一个数字使得所有的输入数据都是正整数。
2024-05-21 来自 新加坡
0ok
2024-05-21 来自 广东
0#include <bits/stdc++.h>
using namespace std;
const int N=0x3f3f3f;
int dd[N],d[N];
int main(void)
{
int n,g=0,gg=0,mn=0,py=0x3f3f3f;
scanf("%d",&n);
int a[n],b[n],c[n],f;
for(int i=0;i<n;i++)
{2024-05-21 来自 广东
0
有帮助,赞一个