我试图完成一个 UVa 问题:11559 - 活动策划。但是,我发现了一些让我感到困惑的事情。我已经编写了一个使用 printf 和 scanf 作为 IO 的代码,但是我在判断中得到了“超出时间限制”。我使用 cin 和 cout 更改了我的代码,然后我得到了“接受”。cin 或 cout 不比 scanf 和 printf 慢吗?这是我的代码。
“stdio.h”版本
#define inf 500000000
using namespace std;
int N, B, H, W;
int main ()
{
while(scanf("%d %d %d %d", &N, &B, &H, &W)){
int cost = inf;
for(int i = 0; i < H; i++){
int P, k ;
scanf("%d",&P);
for(int j = 0; j < W; j++){
scanf("%d",&k);
if(k >= N && N*P < cost) cost = N*P;
}
}
if(cost <= B) printf("%d\n",cost);
else{
printf("stay home\n");
}
}
return 0;
}
“iostream”版本
#define inf 500000000
using namespace std;
int N, B, H, W;
int main ()
{
while(!cin.eof()){
int cost = inf;
cin >> N >> B >> H >> W;
if(cin.eof()) break;
for(int i = 0; i < H; i++){
int P, k ;
cin >> P;
for(int j = 0; j < W; j++){
cin >> k;
if(k >= N && N*P < cost) cost = N*P;
}
}
if(cost <= B) cout << cost << endl;
else{
cout << "stay home" << endl;
}
}
return 0;
}