結果
問題 | No.2517 Right Triangles on Circle |
ユーザー |
![]() |
提出日時 | 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_queuesigned 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;}