結果
問題 | No.1318 ABCD quadruplets |
ユーザー |
|
提出日時 | 2020-12-16 12:22:31 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 400 ms / 2,000 ms |
コード長 | 4,780 bytes |
コンパイル時間 | 2,440 ms |
コンパイル使用メモリ | 211,576 KB |
最終ジャッジ日時 | 2025-01-17 01:52:20 |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 30 |
ソースコード
/*author:ryo3ihara”継続は力なり、雨だれ石を穿つ””slow but steady wins the race”*/#pragma GCC optimize("Ofast")#include<bits/stdc++.h>//#include<atcoder/all>//using namespace atcoder;/*// 多倍長テンプレ#include <boost/multiprecision/cpp_dec_float.hpp>#include <boost/multiprecision/cpp_int.hpp>namespace mp = boost::multiprecision;// 任意長整数型using Bint = mp::cpp_int;// 仮数部が1024ビットの浮動小数点数型(TLEしたら小さくする)using Real = mp::number<mp::cpp_dec_float<1024>>;*/using namespace std;using ll = long long;using ld = long double;using pll = pair<ll, ll>;using pli = pair<ll, int>;using pii = pair<int, int>;using pld = pair<ll, ld>;using ppiii = pair<pii, int>;using ppiill = pair<pii, ll>;using ppllll = pair<pll, ll>;using pplii = pair<pli, int>;using mii = map<int, int>;using dll = deque<ll>;using qll = queue<ll>;using pqll = priority_queue<ll>;using pqrll = priority_queue<ll, vector<ll>, greater<ll>>;using vint = vector<int>;using vll = vector<ll>;using vpll = vector<pll>;using vvll = vector<vector<ll>>;using vvint = vector<vector<int>>;using vvpll = vector<vector<pll>>;//マクロ//forループ#define REP(i,n) for(ll i=0;i<ll(n);i++)#define REPD(i,n) for(ll i=n-1;i>=0;i--)#define FOR(i,a,b) for(ll i=a;i<=ll(b);i++)#define FORD(i,a,b) for(ll i=a;i>=ll(b);i--)#define ALL(x) x.begin(),x.end()#define rALL(x) x.rbegin(),x.rend()#define SIZE(x) ll(x.size())#define fs first#define sc second#define INF32 2147483647 //2.147483647x10^{9}:32bit整数のinf#define INF64 9223372036854775807 //9.223372036854775807x10^{18}:64bit整数のinf//定数const ll MOD = 1000000007;const int inf = 1e9;const ll INF = 1e18;const ll MAXR = 100000; //10^5:配列の最大のrangeinline void Yes(bool b = true) { cout << (b ? "Yes" : "No") << '\n'; }inline void YES(bool b = true) { cout << (b ? "YES" : "NO") << '\n'; }//最大化問題最小化問題template<class T> inline bool chmin(T& a, T b) {if (a > b) {a = b;return true;}return false;}template<class T> inline bool chmax(T& a, T b) {if (a < b) {a = b;return true;}return false;}//高速冪乗化 modの時は一部入れ替えるll power(ll a, ll b) {ll res=1;while (b>0) {if (b&1){res*=a;//res%=MOD;}b/=2;a*=a;//a%=MOD;}return res;}ll power2(ll x, ll y) {if(y == 0) return 1;if(y == 1) {return x;// return x % MOD;}ll ans;if(y % 2 == 1) {ll r = power(x,(y-1)/2);//ans = r * r % MOD;//ans = ans * x % MOD;ans = x * r * r;}else {ll r = power(x,y/2);//ans = r * r % MOD;ans = r * r;}return ans;}/*Bint powerb(Bint x, Bint y) {if(y == 0) return 1;if(y == 1) {return x;// return x % MOD;}Bint ans;if(y % 2 == 1) {Bint r = powerb(x,(y-1)/2);//ans = r * r % MOD;//ans = ans * x % MOD;ans = x * r * r;}else {Bint r = powerb(x,y/2);//ans = r * r % MOD;ans = r * r;}return ans;}*/ll cal(ll a, ll b, ll c,ll d){return a * a + a * b + a * c + a * d + b * b + b * c + b * d + c * c + c * d + d * d;}signed main(){//入力の高速化用のコードios::sync_with_stdio(false);cin.tie(nullptr);//入力ll N,M;cin >> N >> M;vll ans(N+1,0);FOR(a,0,M){FOR(b,0,a){FOR(c,0,b){FOR(d,0,c){ll k = cal(a,b,c,d);if(k > N) break;if(a == b){if(b == c){if(c == d) ans[k] += 1;else ans[k] += 4;}else{if(c == d) ans[k] += 6;else ans[k] += 12;}}else{if(b == c){if(c == d) ans[k] += 4;else ans[k] += 12;}else{if(c == d) ans[k] += 12;else ans[k] += 24;}}}}}}FOR(i,0,N){cout << ans[i] << endl;}//cout << ans << endl;//cout << fixed << setprecision(10) << ans << endl;return 0;}