#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;
using ld = long double;
using pii = pair<int,int>;
using pll = pair<ll,ll>;
using vi = vector<int>;
using vb = vector<bool>;
using vc = vector<char>;
using vvc = vector<vc>;
using vvi = vector<vi>;
using vvb = vector<vb>;
using vpii = vector<pii>;
using vpll = vector<pll>;
using vll = vector<ll>;
using vvll = vector<vll>;
using vull = vector<ull>;
#define f first
#define s second
#define pb emplace_back
#define rep(i, begin, end) for(auto i = (begin); i <= (end); ++i)
#define repr(i, begin, end) for(auto i = (begin); i >= (end); --i)
#define bend(X) X.begin(), X.end()
#ifdef LOCAL
#define nl << endl
#define deb(x) cout << #x << " = " << x << endl
#define say(x) cout << x << endl
void print() { cout << endl; }
#else
#define nl << '\n'
#define deb(x)
#define say(x)
void print() { cout << '\n'; }
#endif
constexpr int INF = 1e9+1e7;
constexpr ll INFl = INF;
constexpr ll INFll = 1e18+1e16;
template <typename T, typename... Args> void print(T x, Args... args) { cout << x << ' '; print(args...); }
template <typename T1, typename T2> ostream& operator<<(ostream& os, pair<T1,T2> x) { os << '(' << x.f << ' ' << x.s << ')'; return os; }
template <typename T1, typename T2> istream& operator>>(istream& is, pair<T1,T2>& x) { is >> x.f >> x.s; return is; }
template <typename T> istream& operator>>(istream& is, vector<T>& x) { for(T& i : x) is >> i; return is; }
template <typename T> ostream& operator<<(ostream& os, vector<T>& x) { for(const T& i : x) os << i << ' '; return os; }
template <typename T> ostream& operator<<(ostream& os, set<T>& x) { for(const T& i : x) os << i << ' '; return os; }
template <typename T1, typename T2> ostream& operator<<(ostream& os, map<T1, T2>& x) { for(const auto& i : x) os << "(" << i.first << " : " << i.second << ") "; return os; }
template <typename T1, typename T2> pair<T1,T2> operator+(const pair<T1,T2>& A, const pair<T1,T2>& B) { return {A.f+B.f, A.s+B.s}; }
template <typename T1, typename T2> pair<T1,T2> operator-(const pair<T1,T2>& A, const pair<T1,T2>& B) { return {A.f-B.f, A.s-B.s}; }
template <typename T1, typename T2> pair<T1,T2> operator-(const pair<T1,T2>& A) { return {-A.f, -A.s}; }
template <typename T1, typename T2> bool maxe(T1& A, const T2& B) { return A<B ? A=B,true : false; }
template <typename T1, typename T2> bool mine(T1& A, const T2& B) { return B<A ? A=B,true : false; }
// ----------------------------------------------------------------
// ----------------------------------------------------------------
int n, m;
vpii T;
int cnt[5];
ll solve() {
sort(bend(T));
int j = 0;
int R = 0;
deb(T);
rep(i, 1, n) {
while(T[j].f == i) {
int c = T[j].s;
if(c > 0) ++cnt[c];
else --cnt[-c];
++j;
}
say("na pozycji " << i << " mam liczniki " << cnt[1] << ' ' << cnt[2] << ' ' << cnt[3]);
if(cnt[1]>0 && cnt[2]>0 && cnt[3]==0)
++R;
}
return R;
}
void in() {
cin >> n >> m;
T.pb(2*n, 42);
rep(i, 1, m) {
int a, b, c;
cin >> a >> b >> c;
T.pb(a, c);
T.pb(b+1, -c);
}
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int noOfTests = 1;
//cin >> noOfTests;
while(noOfTests --> 0) {
in();
ll result = solve();
if (result == ll(-'t')) cout << "TAK\n";
else if(result == ll(-'n')) cout << "NIE\n";
else if(result == ll(-'y')) cout << "YES\n";
else if(result == ll(-'o')) cout << "NO\n";
else if(result == ll(-'e')) cout << "Popsute\n";
else if(result != -INF) cout << result << '\n';
}
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 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 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | #include <bits/stdc++.h> using namespace std; using ll = long long; using ull = unsigned long long; using ld = long double; using pii = pair<int,int>; using pll = pair<ll,ll>; using vi = vector<int>; using vb = vector<bool>; using vc = vector<char>; using vvc = vector<vc>; using vvi = vector<vi>; using vvb = vector<vb>; using vpii = vector<pii>; using vpll = vector<pll>; using vll = vector<ll>; using vvll = vector<vll>; using vull = vector<ull>; #define f first #define s second #define pb emplace_back #define rep(i, begin, end) for(auto i = (begin); i <= (end); ++i) #define repr(i, begin, end) for(auto i = (begin); i >= (end); --i) #define bend(X) X.begin(), X.end() #ifdef LOCAL #define nl << endl #define deb(x) cout << #x << " = " << x << endl #define say(x) cout << x << endl void print() { cout << endl; } #else #define nl << '\n' #define deb(x) #define say(x) void print() { cout << '\n'; } #endif constexpr int INF = 1e9+1e7; constexpr ll INFl = INF; constexpr ll INFll = 1e18+1e16; template <typename T, typename... Args> void print(T x, Args... args) { cout << x << ' '; print(args...); } template <typename T1, typename T2> ostream& operator<<(ostream& os, pair<T1,T2> x) { os << '(' << x.f << ' ' << x.s << ')'; return os; } template <typename T1, typename T2> istream& operator>>(istream& is, pair<T1,T2>& x) { is >> x.f >> x.s; return is; } template <typename T> istream& operator>>(istream& is, vector<T>& x) { for(T& i : x) is >> i; return is; } template <typename T> ostream& operator<<(ostream& os, vector<T>& x) { for(const T& i : x) os << i << ' '; return os; } template <typename T> ostream& operator<<(ostream& os, set<T>& x) { for(const T& i : x) os << i << ' '; return os; } template <typename T1, typename T2> ostream& operator<<(ostream& os, map<T1, T2>& x) { for(const auto& i : x) os << "(" << i.first << " : " << i.second << ") "; return os; } template <typename T1, typename T2> pair<T1,T2> operator+(const pair<T1,T2>& A, const pair<T1,T2>& B) { return {A.f+B.f, A.s+B.s}; } template <typename T1, typename T2> pair<T1,T2> operator-(const pair<T1,T2>& A, const pair<T1,T2>& B) { return {A.f-B.f, A.s-B.s}; } template <typename T1, typename T2> pair<T1,T2> operator-(const pair<T1,T2>& A) { return {-A.f, -A.s}; } template <typename T1, typename T2> bool maxe(T1& A, const T2& B) { return A<B ? A=B,true : false; } template <typename T1, typename T2> bool mine(T1& A, const T2& B) { return B<A ? A=B,true : false; } // ---------------------------------------------------------------- // ---------------------------------------------------------------- int n, m; vpii T; int cnt[5]; ll solve() { sort(bend(T)); int j = 0; int R = 0; deb(T); rep(i, 1, n) { while(T[j].f == i) { int c = T[j].s; if(c > 0) ++cnt[c]; else --cnt[-c]; ++j; } say("na pozycji " << i << " mam liczniki " << cnt[1] << ' ' << cnt[2] << ' ' << cnt[3]); if(cnt[1]>0 && cnt[2]>0 && cnt[3]==0) ++R; } return R; } void in() { cin >> n >> m; T.pb(2*n, 42); rep(i, 1, m) { int a, b, c; cin >> a >> b >> c; T.pb(a, c); T.pb(b+1, -c); } } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int noOfTests = 1; //cin >> noOfTests; while(noOfTests --> 0) { in(); ll result = solve(); if (result == ll(-'t')) cout << "TAK\n"; else if(result == ll(-'n')) cout << "NIE\n"; else if(result == ll(-'y')) cout << "YES\n"; else if(result == ll(-'o')) cout << "NO\n"; else if(result == ll(-'e')) cout << "Popsute\n"; else if(result != -INF) cout << result << '\n'; } return 0; } |
English