#include using namespace std; const int MAXSTATIONS = 100000; void determineClockWise(int len, int n, int* locs, int* miles, bool* clock) { int num[MAXSTATIONS], left[MAXSTATIONS]; int next[MAXSTATIONS]; for(int i=0; i=0; j--) { int currleft = 0; int m = 0; int k = j; // arrive at station k with currleft miles available while (m= next[k]) { int k1 = (k+1)%n; m += num[k1]+1; currleft += miles[k]-next[k]+left[k1]; k = (k+num[k1]+1)%n; } clock[j] = (m>=n); num[j] = m; left[j] = currleft; } /* for(int i=0; i a[med]) swap(a, b, low, med); if (a[med] > a[high]) swap(a, b, med, high); if (a[low] > a[med]) swap(a, b, low, med); swap(a, b, low+1, med); int i=low+1; int j=high; while (i a[low+1]) ; if (i 20) { int index = partition(a, b, low, high); qsort(a, b, low, index-1); qsort(a, b, index+1, high); } else { int n=high-low+1; for(int i=0; i a[j+1]) swap(a, b, j, j+1); } } } } int main() { int len, n; int locs[MAXSTATIONS], miles[MAXSTATIONS]; bool clock[MAXSTATIONS], cclock[MAXSTATIONS]; int icase=0; cin >> len >> n; while (len > 0) { icase++; for(int i=0; i> locs[i] >> miles[i]; qsort(locs, miles, 0, n-1); /* */ /* for(int i=0; i> len >> n; } return 0; }