結果

問題 No.3361 2解間格子点
コンテスト
ユーザー daiota
提出日時 2025-11-14 23:03:43
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 908 bytes
コンパイル時間 1,355 ms
コンパイル使用メモリ 164,300 KB
実行使用メモリ 7,848 KB
最終ジャッジ日時 2025-11-14 23:03:47
合計ジャッジ時間 3,377 ms
ジャッジサーバーID
(参考情報)
judge1 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 54 WA * 11
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair<ll,ll> P;
#define REP(i,n) for(ll i=0;i<ll(n);i++)





bool is_sqr(ll N) {
    ll r = (ll)floor(sqrt((double)N));
    return r*r==N;
}






int main(void){
	cin.tie(nullptr);  ios_base::sync_with_stdio(false);
	ll i,j;





	ll A,B,C;
	cin >> A >> B >> C;




	ll d=B*B-4*A*C;

	if(is_sqr(d)){

		ll p=-B-(ll)sqrt(d);
		ll pp=-B+(ll)sqrt(d);
		ll q=2*A;


		if(p%q==0 && pp%q==0){
			cout << labs(pp/q-p/q-1) << endl;
		}
		else if(p%q==0 && pp%q!=0){
			cout << labs(floor(1.0*pp/q)-p/q) << endl;
		}
		else if(p%q!=0 && pp%q==0){
			cout << labs(pp/q-1-floor(1.0*p/q)) << endl;
		}
		else{
			cout << labs(floor(1.0*pp/q)-floor(1.0*p/q)) << endl;
		}







	}else{

		double p=-B-sqrt(1.0*d);
		double pp=-B+sqrt(1.0*d);
		double q=2.0*A;


		cout << labs(floor(1.0*pp/q)-floor(1.0*p/q)) << endl;

	}





	return 0;

}
0