http://tenka1-2017.contest.atcoder.jp/tasks/tenka1_2017_c
我怀疑我是不是智障。。。。
本来一直的想法是能不能构造出答案,把N按奇偶分,偶数好办,但是奇数死活想不出,结果想暴力,显然三种循环是过不了的。
那就直接二重循环暴力,求第三数不就行了啊!!!!哇靠,
这里唯一要注意的是N可能很大,开成long long吧,反正刚开始我int没过,把所有变量都改成long long 就好了。
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 typedef long long ll; 7 int main() 8 { 9 ll N; 10 while (scanf("%d", &N) == 1) 11 { 12 for(ll h=1;h<=3500;h++) 13 for(ll n=1;n<=3500;n++){ 14 ll t1=N*h*n; 15 ll t2=4*n*h-N*(h+n); 16 if((t2>0)&&(t1%t2==0)){ 17 cout<<h<<" "<<n<<" "<<t1/t2<<endl; 18 return 0; 19 } 20 } 21 } 22 return 0; 23 }
官方题解: