#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); int n,m,k,l,r; int ans=0; cin >> n >> m; vector<set <int> > v(n); vector<pair <int,int> > k1; vector<pair <int,int> > k2; vector<pair <int,int> > k3; while(m--) { bool f=false; cin >> l >> r >> k; l--; r--; if(k==1) { for(int i=0; i<k1.size(); i++) { if(r>=k1[i].first && l<=k1[i].second) { k1[i].first=min(l,k1[i].first); k1[i].second=max(r,k1[i].second); f=true; break; } } if(!f) k1.push_back(make_pair(l, r)); } if(k==2) { for(int i=0; i<k2.size(); i++) { if(r>=k2[i].first && l<=k2[i].second) { k2[i].first=min(l,k2[i].first); k2[i].second=max(r,k2[i].second); f=true; break; } } if(!f) k2.push_back(make_pair(l, r)); } if(k==3) { for(int i=0; i<k3.size(); i++) { if(r>=k3[i].first && l<=k3[i].second) { k3[i].first=min(l,k3[i].first); k3[i].second=max(r,k3[i].second); f=true; break; } } if(!f) k3.push_back(make_pair(l, r)); } } for(int i=0; i<k1.size(); i++) { for(int j=k1[i].first; j<=k1[i].second; j++) v[j].insert(1); } for(int i=0; i<k2.size(); i++) { for(int j=k2[i].first; j<=k2[i].second; j++) v[j].insert(2); } for(int i=0; i<k3.size(); i++) { for(int j=k3[i].first; j<=k3[i].second; j++) v[j].insert(3); } for(int i=0; i<n; i++) { if(v[i].count(1) && v[i].count(2) && !v[i].count(3)) ans++; } cout << ans; 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 | #include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); int n,m,k,l,r; int ans=0; cin >> n >> m; vector<set <int> > v(n); vector<pair <int,int> > k1; vector<pair <int,int> > k2; vector<pair <int,int> > k3; while(m--) { bool f=false; cin >> l >> r >> k; l--; r--; if(k==1) { for(int i=0; i<k1.size(); i++) { if(r>=k1[i].first && l<=k1[i].second) { k1[i].first=min(l,k1[i].first); k1[i].second=max(r,k1[i].second); f=true; break; } } if(!f) k1.push_back(make_pair(l, r)); } if(k==2) { for(int i=0; i<k2.size(); i++) { if(r>=k2[i].first && l<=k2[i].second) { k2[i].first=min(l,k2[i].first); k2[i].second=max(r,k2[i].second); f=true; break; } } if(!f) k2.push_back(make_pair(l, r)); } if(k==3) { for(int i=0; i<k3.size(); i++) { if(r>=k3[i].first && l<=k3[i].second) { k3[i].first=min(l,k3[i].first); k3[i].second=max(r,k3[i].second); f=true; break; } } if(!f) k3.push_back(make_pair(l, r)); } } for(int i=0; i<k1.size(); i++) { for(int j=k1[i].first; j<=k1[i].second; j++) v[j].insert(1); } for(int i=0; i<k2.size(); i++) { for(int j=k2[i].first; j<=k2[i].second; j++) v[j].insert(2); } for(int i=0; i<k3.size(); i++) { for(int j=k3[i].first; j<=k3[i].second; j++) v[j].insert(3); } for(int i=0; i<n; i++) { if(v[i].count(1) && v[i].count(2) && !v[i].count(3)) ans++; } cout << ans; return 0; } |