結果
問題 | No.538 N.G.S. |
ユーザー | omu |
提出日時 | 2017-07-01 00:16:16 |
言語 | C++11 (gcc 11.4.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,650 bytes |
コンパイル時間 | 1,383 ms |
コンパイル使用メモリ | 169,408 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-10-04 22:12:14 |
合計ジャッジ時間 | 27,931 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 300 ms
6,816 KB |
testcase_01 | AC | 292 ms
6,820 KB |
testcase_02 | AC | 288 ms
6,820 KB |
testcase_03 | AC | 290 ms
6,816 KB |
testcase_04 | AC | 355 ms
6,816 KB |
testcase_05 | AC | 284 ms
6,816 KB |
testcase_06 | AC | 293 ms
6,820 KB |
testcase_07 | WA | - |
testcase_08 | AC | 289 ms
6,816 KB |
testcase_09 | AC | 284 ms
6,816 KB |
testcase_10 | WA | - |
testcase_11 | WA | - |
testcase_12 | AC | 323 ms
6,816 KB |
testcase_13 | WA | - |
testcase_14 | WA | - |
testcase_15 | WA | - |
testcase_16 | AC | 252 ms
6,816 KB |
testcase_17 | WA | - |
testcase_18 | AC | 309 ms
6,816 KB |
testcase_19 | WA | - |
testcase_20 | WA | - |
testcase_21 | WA | - |
testcase_22 | WA | - |
testcase_23 | WA | - |
testcase_24 | WA | - |
testcase_25 | WA | - |
testcase_26 | WA | - |
testcase_27 | WA | - |
testcase_28 | WA | - |
testcase_29 | WA | - |
testcase_30 | WA | - |
testcase_31 | WA | - |
testcase_32 | AC | 242 ms
6,820 KB |
testcase_33 | AC | 348 ms
6,820 KB |
testcase_34 | AC | 339 ms
6,816 KB |
testcase_35 | AC | 242 ms
6,816 KB |
testcase_36 | AC | 288 ms
6,816 KB |
testcase_37 | AC | 287 ms
6,816 KB |
testcase_38 | AC | 286 ms
6,816 KB |
testcase_39 | AC | 285 ms
6,824 KB |
testcase_40 | WA | - |
testcase_41 | WA | - |
testcase_42 | WA | - |
testcase_43 | WA | - |
testcase_44 | WA | - |
testcase_45 | WA | - |
testcase_46 | WA | - |
testcase_47 | AC | 336 ms
6,816 KB |
testcase_48 | AC | 530 ms
6,816 KB |
testcase_49 | WA | - |
testcase_50 | AC | 320 ms
6,816 KB |
testcase_51 | WA | - |
testcase_52 | WA | - |
testcase_53 | AC | 250 ms
6,820 KB |
testcase_54 | WA | - |
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:121:27: warning: narrowing conversion of ‘e’ from ‘long long int’ to ‘long double’ [-Wnarrowing] 121 | vec B0 = {e, c}; | ^ main.cpp:121:27: warning: narrowing conversion of ‘e’ from ‘long long int’ to ‘long double’ [-Wnarrowing] main.cpp:129:27: warning: narrowing conversion of ‘e’ from ‘long long int’ to ‘long double’ [-Wnarrowing] 129 | vec B1 = {e, b}; | ^ main.cpp:129:27: warning: narrowing conversion of ‘e’ from ‘long long int’ to ‘long double’ [-Wnarrowing]
ソースコード
#include <bits/stdc++.h> #define int long long #define double long double using namespace std; template <class T> string tostr(T x) { stringstream o; o << x; return o.str(); } template <class T> T sqr(T x) { return x * x; } template <class T> T mypow(T x, int n) { T r = 1; while (n > 0) { if (n & 1) r = r * x; x = x * x; n >>= 1; } return r; } int toint(string s) { int v; stringstream i(s); i >> v; return v; } bool check(int x, int y, int w, int h) { return x >= 0 && y >= 0 && w > x && h > y; } int gcd(int a, int b) { return b ? gcd(b, a % b) : a; } int lcm(int a, int b) { return a / gcd(a, b) * b; } #define REP(i, a, b) for (int(i) = (a); i < (b); (i)++) #define rep(i, n) REP(i, 0, n) #define PER(i, a, b) for (int(i) = (a - 1); i >= (b); (i)--) #define per(i, n) PER(i, n, 0) #define each(i, n) for (auto& i : n) #define clr(a) memset((a), 0, sizeof(a)) #define mclr(a) memset((a), -1, sizeof(a)) #define all(a) (a).begin(), (a).end() #define dump(val) cerr << #val " = " << val << endl; #define dum(val) cerr << #val " = " << val; #define FILL(a, v) fill(a, a + sizeof(a) / sizeof(*a), v) const int dx[8] = {+1, +0, -1, +0, +1, +1, -1, -1}; const int dy[8] = {+0, -1, +0, +1, -1, +1, -1, +1}; const int mod = 1e9 + 7; const int INF = 1e9; const double EPS = 1e-8; typedef vector<double> vec; typedef vector<vec> mat; /* 1x + 2y = 5 3x + 4y = 6 (x = -4, y = 4.5) A = { {1, 2}, {3, 4} } b = { 5, 6 } ans = {-4, 4.5} */ vec gauss_jordan(const mat& A, const vec& b) { int n = A.size(); mat B(n, vec(n + 1)); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { B[i][j] = A[i][j]; } } for (int i = 0; i < n; i++) B[i][n] = b[i]; for (int i = 0; i < n; i++) { int pivot = i; for (int j = i; j < n; j++) { if (abs(B[j][i]) > abs(B[pivot][i])) pivot = j; } swap(B[i], B[pivot]); if (abs(B[i][i]) < EPS) return vec(); for (int j = i + 1; j <= n; j++) B[i][j] /= B[i][i]; for (int j = 0; j < n; j++) { if (i != j) { for (int k = i + 1; k <= n; k++) B[j][k] -= B[j][i] * B[i][k]; } } } vec x(n); for (int i = 0; i < n; i++) x[i] = B[i][n]; return x; } #define EQ(n, m) (abs((n) - (m)) < EPS) // n == m signed main() { double a, b, c; cin >> a >> b >> c; for (int e = -1e+5 * 5; e <= 1e+5 * 5; e++) { mat A0 = { vec({c, 1}), vec({b, 1}), }; vec B0 = {e, c}; auto v0 = gauss_jordan(A0, B0); mat A1 = { vec({c, 1}), vec({a, 1}), }; vec B1 = {e, b}; auto v1 = gauss_jordan(A1, B1); if (v1.size() && v0.size() && EQ(v0[0], v1[0]) && EQ(v0[1], v1[1])) { cout << e << endl; return 0; } } }