问题描述
问题链接: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)
的计算来修复。