結果
問題 | No.2517 Right Triangles on Circle |
ユーザー | yumekawayui |
提出日時 | 2023-10-27 22:04:29 |
言語 | C++17(clang) (17.0.6 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 330 ms / 2,000 ms |
コード長 | 1,147 bytes |
コンパイル時間 | 6,216 ms |
コンパイル使用メモリ | 192,128 KB |
実行使用メモリ | 24,320 KB |
最終ジャッジ日時 | 2024-09-25 14:10:31 |
合計ジャッジ時間 | 9,305 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 29 |
ソースコード
#pragma GCC target("avx") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #include <bits/extc++.h> using namespace std; using ld = long double; const vector<int> dx = {0, 0, 1, -1}; const vector<int> dy = {1, -1, 0, 0}; #define vec vector #define int long long #define double long double //cout<<setprecision(10)<<fixed<<.. #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define repp(i, x, n) for (int i = x; i < (int)(n); i++) #define pii pair<int,int> #define pq priority_queue signed main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int n;cin>>n; int m;cin>>m; map<int,int> cnt; vec<int> A(n);rep(i,n){cin>>A[i];cnt[A[i]*2]++;} int ans=0; for(auto Z:cnt){ int i=Z.first/2; if(i*2>m){break;} if(i>m/2.0){ int v=2*i; int op=v-m; if(cnt.find(op)==cnt.end()){continue;} ans+=cnt[v]*cnt[op]*(n-cnt[v]-cnt[op]); }else{ int v=2*i; int op=v+m; if(cnt.find(op)==cnt.end()){continue;} ans+=cnt[v]*cnt[op]*(n-cnt[v]-cnt[op]); } } cout<<ans; }