結果
問題 |
No.2563 色ごとのグループ
|
ユーザー |
|
提出日時 | 2024-02-14 12:33:45 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,465 bytes |
コンパイル時間 | 1,426 ms |
コンパイル使用メモリ | 116,088 KB |
実行使用メモリ | 814,544 KB |
最終ジャッジ日時 | 2024-09-28 18:49:43 |
合計ジャッジ時間 | 6,199 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 12 WA * 9 MLE * 2 -- * 12 |
ソースコード
#define _USE_MATH_DEFINES #include <iostream> //cin, cout #include <vector> //vector #include <algorithm> //sort,min,max,count #include <string> //string,getline, to_string #include <cstdlib> //abs(int) #include <utility> //swap, pair #include <tuple> //tuple #include <deque> //deque #include <climits> //INT_MAX #include <bitset> //bitset #include <cmath> //sqrt, ceil. M_PI, pow, sin #include <ios> //fixed #include <iomanip> //setprecision #include <sstream> //stringstream #include <numeric> //gcd, assumlate #include <random> //randam_device #include <limits> //numeric_limits using namespace std; constexpr long long int D_MOD = 1000000007; int main() { int N, M; cin >> N >> M; vector<vector<int>> A(N); vector<vector<bool>> B(N, vector<bool>(N)); int temp1, temp2; for (int i = 0; i < N; i++) { cin >> temp1; A.at(temp1 - 1).push_back(i + 1); } sort(A.rbegin(), A.rend()); for (int i = 0; i < M; i++) { cin >> temp1 >> temp2; B.at(temp1 - 1).at(temp2 - 1) = true; } int ans = 0; for (int i = 0; i < N; i++) { if (A.at(i).size() == 1) { continue; } else if (A.at(i).size() == 0) { break; } else { ans += A.at(i).size() - 1; for (unsigned int j = 0; j < A.at(i).size() - 1; j++) { for (unsigned int k = j + 1; k < A.at(i).size(); k++) { if (B.at(A.at(i).at(j) - 1).at(A.at(i).at(k) - 1) == true) { ans--; } } } } } cout << ans << endl; return 0; }