結果
| 問題 |
No.3361 2解間格子点
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 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 |
ソースコード
#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;
}