codejam环境熟悉—Minimum Scalar Product

今天准备熟悉一下codejam的在线编程,为google的笔试做准备,因此按照codejam上对新手的建议,先用了一个简单的题目来弄清楚流程。记录一下需要注意的地方。

1.输入输出

输入输出重定位即可,拿Minimum Scalar Product这个例子示例如下:

#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
#include <cstdio>
using namespace std;

int main()
{
freopen("A-large-practice.in","r",stdin);
freopen("output.in","w",stdout);

int caseNum;
int curVectorLen;
typedef long long longType;
longType curTotal;
cin>>caseNum;
for(int i=0;i<caseNum;++i)
{
cin>>curVectorLen;

vector<int> vec1(curVectorLen,0);
vector<int> vec2(curVectorLen,0);

for(int j=0;j<curVectorLen;j++)
{
cin>>vec1[j];
}

for(int j=0;j<curVectorLen;j++)
{
cin>>vec2[j];
}

sort(vec1.begin(),vec1.end());
sort(vec2.begin(),vec2.end());

curTotal=0LL;
for(int j=0;j<curVectorLen;++j)
{
curTotal+=(longType)vec1[j]*vec2[curVectorLen-1-j];
}

cout<<"Case #"<<i+1<<": "<<curTotal<<endl;

}

return 0;
}

可知,平时的OJ环境默认输出现在转到了文件读取和写入。转换的关键代码如下:

#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
#include <cstdio>
using namespace std;

int main()
{
freopen("A-large-practice.in","r",stdin);
freopen("output.in","w",stdout);

//正常的cin和cout
return 0;
}

2.关于Minimum Scalar Product

注意溢出问题就好了。两个int类型乘的时候注意强制类型转换一下。

原文地址:https://www.cnblogs.com/obama/p/3323316.html