結果
問題 | No.1318 ABCD quadruplets |
ユーザー |
![]() |
提出日時 | 2020-12-16 01:05:22 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 358 ms / 2,000 ms |
コード長 | 979 bytes |
コンパイル時間 | 1,654 ms |
コンパイル使用メモリ | 193,920 KB |
最終ジャッジ日時 | 2025-01-17 01:25:22 |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 30 |
コンパイルメッセージ
main.cpp: In function ‘int count(int, int, int, int)’: main.cpp:21:1: warning: control reaches end of non-void function [-Wreturn-type] 21 | } | ^
ソースコード
#include <bits/stdc++.h> using namespace std; int f(int a, int b, int c, int d) { int s = a + b + c + d; return (s * s + a * a + b * b + c * c + d * d) / 2; } int count(int a, int b, int c, int d) { int same = (a == b) + (b == c) + (c == d); switch(same) { case 0: return 24; case 1: return 12; case 2: return b == c ? 4 : 6; case 3: return 1; } } int main() { int n, m; cin >> n >> m; vector<int> ans(n + 1); for (int a = 0; a <= m; a++) { for (int b = a; b <= m; b++) { if (f(a, b, 0, 0) > n) break; for (int c = b; c <= m; c++) { if (f(a, b, c, 0) > n) break; for (int d = c; d <= m; d++) { if (f(a, b, c, d) > n) break; ans[f(a, b, c, d)] += count(a, b, c, d); } } } } for (int i = 0; i <= n; i++) { cout << ans[i] << "\n"; } }