제출 #844269

#제출 시각아이디문제언어결과실행 시간메모리
844269vjudge1Spiderman (COCI20_spiderman)C++17
28 / 70
2089 ms8936 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace __gnu_pbds; using namespace std; #define int int64_t #define ordered_set \ tree<int, null_type, less<int>, rb_tree_tag, \ tree_order_statistics_node_update> #define F first #define S second #define I insert #define PB push_back #define POB pop_back #define sqr(a) ((a) * (a)) #define P pop #define max3(a, b, c) (max(a, max(b, c))) #define max4(a, b, c, d) (max(max(a, b), max(c, d))) #define min3(a, b, c) (min(a, min(b, c))) #define min4(a, b, c, d) (min(min(a, b), min(c, d))) #define MOD 1000000007 #define mod 998244353 int binpow(int a, int p, int m = MOD) { int ans = 1; while (p) { if (p & 1) ans = ((ans % m) * (a % m)) % m; a = sqr(a) % m; p >>= 1; } return ans; } void solve() { int n, k; cin >> n >> k; vector<int> h(n, 0); map<int, int> heights, ans; for (int i = 0; i < n; i++) { cin >> h[i]; heights[h[i]]++; } for (auto x : heights) { for (auto y : heights) { if (y.F == x.F) continue; if (x.F % y.F == k) ans[x.F] += y.S; } } for (int i = 0; i < n; i++) { cout << ans[h[i]]; if (i != n - 1) cout << ' '; } } int32_t main() { int t = 1; // cin >> t; while (t--) { solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...