結果

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

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;
using ll = long long;

int main(){
    ll a, b, c;
    cin >> a >> b >> c;
    long double D = sqrtl(b * b - 4 * a * c);
    ll d = D;
    if(d * d == b * b - 4 * a * c){
        ll L = -b - d;
        ll R = -b + d;
        if(L * a > R * a) swap(L, R);
        if(R % (2 * a) == 0) R = R / (a * 2) - 1;
        else R /= 2 * a;
        if(L % (2 * a) == 0) L = L / (a * 2) + 1;
        else L = L / (2 * a) + 1;
        cout << R - L + 1 << '\n';
    }else{
        long double L = (long double)(-b - D) / (2 * a);
        long double R = (long double)(-b + D) / (2 * a);
        if (L > R) swap(L, R);
        cout << floor(R) - ceil(L) + 1 << '\n';
    }
}
0