关于 scanf() 和 cin 的问题
the questions about scanf() and cin
我遇到了一个问题。 link ->
the problem
这是我的 solution.If 我使用 scanf
,代码可以在 codeforces 上被接受,但是替换 cin
然后不,它出现错误的答案,但在我的本地解释器中使用 cin 是可以的。
为什么?
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int t;
scanf("%d", &t);
nt :
while (t--) {
long long hc, dc, hm, dm, w, a;
long k;
scanf("%lld%lld%lld%lld%d%lld%lld", &hc, &dc, &hm, &dm, &k, &w, &a); // ok
// cin >> hc >> dc >> hm >> dm >> k >> w >> a; // cannot work
for (int i = 0; i < k + 1; i++) {
int opt = k - i;
long long hc1 = opt * a + hc;
long long dc1 = i * w + dc;
long long cnt1 = hm / dc1 + (hm % dc1 > 0);
long long cnt2 = hc1 / dm + (hc1 % dm > 0);
if (cnt1 <= cnt2) {
printf("YES\n");
goto nt;
}
}
printf("NO\n");
}
}
我只是尝试了很多练习,发现问题的关键在于问题的输入。
您在第 5 行中还有另一个 scanf,您也必须将其替换。否则他们每个人都有自己的输入缓冲区并混淆。
我遇到了一个问题。 link ->
the problem
这是我的 solution.If 我使用 scanf
,代码可以在 codeforces 上被接受,但是替换 cin
然后不,它出现错误的答案,但在我的本地解释器中使用 cin 是可以的。
为什么?
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int t;
scanf("%d", &t);
nt :
while (t--) {
long long hc, dc, hm, dm, w, a;
long k;
scanf("%lld%lld%lld%lld%d%lld%lld", &hc, &dc, &hm, &dm, &k, &w, &a); // ok
// cin >> hc >> dc >> hm >> dm >> k >> w >> a; // cannot work
for (int i = 0; i < k + 1; i++) {
int opt = k - i;
long long hc1 = opt * a + hc;
long long dc1 = i * w + dc;
long long cnt1 = hm / dc1 + (hm % dc1 > 0);
long long cnt2 = hc1 / dm + (hc1 % dm > 0);
if (cnt1 <= cnt2) {
printf("YES\n");
goto nt;
}
}
printf("NO\n");
}
}
我只是尝试了很多练习,发现问题的关键在于问题的输入。
您在第 5 行中还有另一个 scanf,您也必须将其替换。否则他们每个人都有自己的输入缓冲区并混淆。