如何解决为什么这个答案不起作用,仅适用于一个测试用例?
问题链接:https://codeforces.com/contest/1551/problem/A 解决方案:
#include<bits/stdc++.h>
using namespace std;
typedef long double ll;
void solve(){
long int n;
cin>>n;
long int d=n/3;
n=n-d;
ll s= ll (n)/2;
cout<<round(s)<<" "<<d;
cout<<endl;
}
int main(){
long t;
cin>>t;
while(t--){
solve();
}
return 0;
}
它适用于所有其他测试用例,但不适用于 10^9 为什么会这样?
解决方法
它适用于所有其他测试用例,但不适用于 10^9 为什么会这样?
它不适用于许多测试用例,即第一个数字以指数(科学)表示法打印的所有情况以及 n 小于 3 的倍数的所有情况,其中 c1 出现 1 到高和 c2 1 太低。第一个缺陷可以通过将 round
的结果转换为 long
来修复,第二个缺陷可以通过更正 (n%3==2)
的计算来修复。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。