#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; } |
English