#include #define CARD_SIZE 10000 int card[CARD_SIZE], temp_a[CARD_SIZE], temp_b[CARD_SIZE], temp_c[CARD_SIZE]; void shuffle(int x, int y, int n); int main(void) { int n, m, p, q, r, i, count = 0, s[2][CARD_SIZE]; scanf("%d%d%d%d%d", &n, &m, &p, &q, &r); for(i = 0; i < m; i++) scanf("%d%d", &s[0][i], &s[1][i]); for(i = 0; i < n; i++) card[i] = i + 1; for(i = 0; i < m; i++) shuffle(s[0][i], s[1][i], n); for(i = p - 1; i < q; i++) if(card[i] <= r) count++; printf("%d\n", count); return 0; } void shuffle(int x, int y, int n) { int i, j; //divide deck for(i = 0; i < x; i++) temp_a[i] = card[i]; for(j = 0; i < y; i++, j++) temp_b[j] = card[i]; for(j = 0; i < n; i++, j++) temp_c[j] = card[i]; //rebuild deck for(i = 0; i < (n-y); i++) card[i] = temp_c[i]; for(j = 0; i < (n-x); i++, j++) card[i] = temp_b[j]; for(j = 0; i < n; i++, j++) card[i] = temp_a[j]; }