結果
| 問題 |
No.1120 Strange Teacher
|
| コンテスト | |
| ユーザー |
e869120
|
| 提出日時 | 2020-07-02 16:33:30 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,218 bytes |
| コンパイル時間 | 493 ms |
| コンパイル使用メモリ | 65,476 KB |
| 実行使用メモリ | 6,824 KB |
| 最終ジャッジ日時 | 2024-10-11 20:52:23 |
| 合計ジャッジ時間 | 1,641 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | WA * 3 |
| other | WA * 27 |
ソースコード
#include <iostream>
#include <cassert>
using namespace std;
long long A, B, C, D;
unsigned long long VA, VB, VC, VD;
int ty1, ty2;
int sgn(long long val) {
if (val < 0LL) return -1;
if (val > 0LL) return 1;
return 0;
}
int main() {
cin >> A >> B >> C >> D;
assert(-4000000000LL <= A && A <= 4000000000LL);
assert(-4000000000LL <= B && B <= 4000000000LL && B != 0LL);
assert(-4000000000LL <= C && C <= 4000000000LL);
assert(-4000000000LL <= D && D <= 4000000000LL && D != 0LL);
VA = (unsigned long long)abs(A);
VB = (unsigned long long)abs(B);
VC = (unsigned long long)abs(C);
VD = (unsigned long long)abs(D);
// A/B の正負を判定
if (sgn(A) == 0) ty1 = 0;
else if (sgn(A) + sgn(B) == 0) ty1 = -1;
else ty1 = 1;
// C/D の正負を判定
if (sgn(C) == 0) ty2 = 0;
else if (sgn(C) + sgn(D) == 0) ty2 = -1;
else ty2 = 1;
// 場合分け
if (ty1 < ty2) { cout << "Yes" << endl; }
else if (ty1 > ty2) { cout << "No" << endl; }
else if (ty1 == 0) { cout << "No" << endl; }
else if (ty1 == -1) {
if (VA * VD > VB* VC) cout << "Yes" << endl;
else cout << "No" << endl;
}
else if (ty1 == 1) {
if (VA * VD < VB * VC) cout << "Yes" << endl;
else cout << "No" << endl;
}
return 0;
}
e869120