#include using namespace std; const int oo = 0x3f3f3f3f; const double eps = 1e-9; const double PI = 2.0 * acos(0.0); typedef long long ll; typedef unsigned long long ull; typedef pair pii; typedef vector vi; typedef vector vs; #define sz(c) int((c).size()) #define all(c) (c).begin(), (c).end() #define FOR(i,a,b) for (int i = (a); i < (b); i++) #define FORS(i,a,b,s) for (int i = (a); i < (b); i=i+(s)) #define FORD(i,a,b) for (int i = int(b)-1; i >= (a); i--) #define FORIT(i,c) for (__typeof__((c).begin()) i = (c).begin(); i != (c).end(); i++) int s[3000]; int ep[3000]; int eu[3000]; int st[3000]; vector exSt; int dp[3000][3000]; int main(){ int n; cin >> n; map events; FOR(i,0,n){ cin >> s[i] >> ep[i] >> eu[i] >> st[i]; events[s[i]] = i; } int passed = 0; int lastTime = 0; int accumulated = 0; for (auto [time, exam] : events){ int timeToStudy = time - lastTime + accumulated; if (timeToStudy >= st[exam]){ passed ++; accumulated = timeToStudy - st[exam]; lastTime = ep[exam]; } else { accumulated += time-lastTime; lastTime = eu[exam]; } } cout << passed << endl; }