/* ==============================================================================
*
* Author:
* Name: Adam Jeliński
* Nickname: charodziej <https://github.com/charodziej>
*
* Created: 18:46 07.12.2020
*
* b.cpp
*
* g++ -std=c++17 -O3 -o b.o b.cpp
* ./b.o
*
* ============================================================================== */
#include <bits/stdc++.h>
using namespace std;
#ifndef DEBUG
#define DEBUG 0
#endif
#if DEBUG==1
#include "/home/charodziej/Documents/universal-print-in-cpp/lib/universal_print.h"
#else
#define watch(...)
#define watchb(...)
#define declare_struct(...)
namespace cupl{
void showTypes(...){return;}
}
#endif
/* ============================================================================== *
* /\ Please pardon the code above /\ *
* || It is necessary for the debugging library to function properly || *
* ============================================================================== */
typedef signed long long ll;
typedef unsigned long long ull;
vector<pair<int, char>> changes;
int main(){
#if DEBUG==0
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
#endif
int n, m;
cin >> n >> m;
for (int i = 0; i < m; i++) {
int a, b, c;
cin >> a >> b >> c;
changes.push_back({ a, c });
changes.push_back({ b + 1, -c });
}
int curr[3] = {0, 0, 0};
sort(changes.begin(), changes.end());
int loc = 0, res = 0;
for (auto e : changes) {
if (loc != e.first) {
if (curr[0] > 0 && curr[1] > 0 && curr[2] == 0) {
res++;
}
loc = e.first;
}
if (e.second < 0) {
curr[-e.second - 1]--;
} else {
curr[e.second - 1]++;
}
}
if (curr[0] > 0 && curr[1] > 0 && curr[2] == 0) {
res++;
}
cout << res;
}
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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | /* ============================================================================== * * Author: * Name: Adam Jeliński * Nickname: charodziej <https://github.com/charodziej> * * Created: 18:46 07.12.2020 * * b.cpp * * g++ -std=c++17 -O3 -o b.o b.cpp * ./b.o * * ============================================================================== */ #include <bits/stdc++.h> using namespace std; #ifndef DEBUG #define DEBUG 0 #endif #if DEBUG==1 #include "/home/charodziej/Documents/universal-print-in-cpp/lib/universal_print.h" #else #define watch(...) #define watchb(...) #define declare_struct(...) namespace cupl{ void showTypes(...){return;} } #endif /* ============================================================================== * * /\ Please pardon the code above /\ * * || It is necessary for the debugging library to function properly || * * ============================================================================== */ typedef signed long long ll; typedef unsigned long long ull; vector<pair<int, char>> changes; int main(){ #if DEBUG==0 ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); #endif int n, m; cin >> n >> m; for (int i = 0; i < m; i++) { int a, b, c; cin >> a >> b >> c; changes.push_back({ a, c }); changes.push_back({ b + 1, -c }); } int curr[3] = {0, 0, 0}; sort(changes.begin(), changes.end()); int loc = 0, res = 0; for (auto e : changes) { if (loc != e.first) { if (curr[0] > 0 && curr[1] > 0 && curr[2] == 0) { res++; } loc = e.first; } if (e.second < 0) { curr[-e.second - 1]--; } else { curr[e.second - 1]++; } } if (curr[0] > 0 && curr[1] > 0 && curr[2] == 0) { res++; } cout << res; } |
English