我在codechef上练习一个问题,我遇到了一个sigsegv错误,当我看到问题的setter解决方案时,我发现它与我的相似。
没有使用正确的数据类型是一个问题还是其他问题?
约束是 t,阵列的每个元素a& c< = 10 ^ 6 内存限制256MB
我的代码:
#include <iostream>
#include <stdio.h>
#include "algorithm"
using namespace std;
int main()
{
long long int t;
int i;
scanf("%lld",&t);
long long int a[t],c[t],temp=0;
for(i=0;i<t;i++)
{
scanf("%lld",&a[i]);
}
for(i=0;i<t;i++)
{
scanf("%lld",&c[i]);
}
sort(a,a+t);
sort(c,c+t);
for(i=0;i<t;i++){
temp=temp+a[i]*c[i];
}
printf("%lld",temp);
return 0;
}
问题设定者的代码:
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
vector<long long> cats, cal;
int main(){
int n;
long long temp;
scanf("%d", &n);
for(int i=0;i<n;i++){
scanf("%lld", &temp);
cats.push_back(temp);
}
for(int i=0;i<n;i++){
scanf("%lld", &temp);
cal.push_back(temp);
}
sort(cats.begin(), cats.begin() + n);
sort(cal.begin(), cal.begin() + n);
temp = 0;
for(int i=0;i<n;i++)
temp = temp + cats[i]*cal[i];
printf("%lld\n", temp);
return 0;
}