Advertisement
Guest User

Untitled

a guest
Apr 24th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.80 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <vector>
  4. using namespace std;
  5. int main(){
  6. int n, time=0, l=1;
  7. scanf("%d", &n);
  8. int t[n+1], f[n+1], m[n+1], next[n+1], prev[n+1];
  9. for(int i=1; i<=n; i++){
  10. scanf("%d%d%d", &f[i], &m[i], &t[i]);
  11. if(i!=n)
  12. next[i]=i+1;
  13. if(i!=1)
  14. prev[i]=i-1;
  15. }
  16. next[n]=n;
  17. prev[1]=1;
  18. while(l<n){
  19. printf("%d ", l);
  20. int i=next[next[l]];
  21. if(time<m[l])
  22. time=m[l]+t[l];
  23. else
  24. time+=t[l];
  25. while(m[i]<time && i<n){
  26. while(f[i]==f[prev[i]] && prev[i]!=l && f[i]!=f[next[i]] && m[next[i]]<=time){
  27. int o=prev[prev[i]], p=next[i];
  28. while(f[o]==f[prev[i]] && o>l){
  29. o=prev[o];
  30. }
  31. next[o]=p;
  32. prev[p]=o;
  33. i=p;
  34. }
  35. i=next[i];
  36. }
  37. l=next[l];
  38. }
  39. printf("%d", n);
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement