#include <iostream> #include <fstream> #include <map> #include <array> using namespace std; #ifdef USE_CERR_LOG #define LOG if (true) cerr const bool LogEnabled = true; #else #define LOG if (false) cerr const bool LogEnabled = false; #endif bool LogBigEnabled = true; #ifdef USE_FILE_CIN ifstream fin("sam0.in"); #define cin fin #endif typedef unsigned uint; typedef long long ll; typedef unsigned long long ull; int main() { int n; int typ, depot, tim; map<int, array<int, 2>> diffs; cin >> n; while (n--) { cin >> typ >> depot >> tim; int diff = depot - tim; if (diffs.count(diff) == 0) { diffs[diff] = {0, 0}; } diffs[diff][typ - 1] ++; } int result = 0; for (auto& entry : diffs) { result += min(entry.second[0], entry.second[1]); } cout << result; return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | #include <iostream> #include <fstream> #include <map> #include <array> using namespace std; #ifdef USE_CERR_LOG #define LOG if (true) cerr const bool LogEnabled = true; #else #define LOG if (false) cerr const bool LogEnabled = false; #endif bool LogBigEnabled = true; #ifdef USE_FILE_CIN ifstream fin("sam0.in"); #define cin fin #endif typedef unsigned uint; typedef long long ll; typedef unsigned long long ull; int main() { int n; int typ, depot, tim; map<int, array<int, 2>> diffs; cin >> n; while (n--) { cin >> typ >> depot >> tim; int diff = depot - tim; if (diffs.count(diff) == 0) { diffs[diff] = {0, 0}; } diffs[diff][typ - 1] ++; } int result = 0; for (auto& entry : diffs) { result += min(entry.second[0], entry.second[1]); } cout << result; return 0; } |