Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdio>
- #include <vector>
- using namespace std;
- int main(){
- int n, time=0, l=1;
- scanf("%d", &n);
- int t[n+1], f[n+1], m[n+1], next[n+1], prev[n+1];
- for(int i=1; i<=n; i++){
- scanf("%d%d%d", &f[i], &m[i], &t[i]);
- if(i!=n)
- next[i]=i+1;
- if(i!=1)
- prev[i]=i-1;
- }
- next[n]=n;
- prev[1]=1;
- while(l<n){
- printf("%d ", l);
- int i=next[next[l]];
- if(time<m[l])
- time=m[l]+t[l];
- else
- time+=t[l];
- while(m[i]<time && i<n){
- while(f[i]==f[prev[i]] && prev[i]!=l && f[i]!=f[next[i]] && m[next[i]]<=time){
- int o=prev[prev[i]], p=next[i];
- while(f[o]==f[prev[i]] && o>l){
- o=prev[o];
- }
- next[o]=p;
- prev[p]=o;
- i=p;
- }
- i=next[i];
- }
- l=next[l];
- }
- printf("%d", n);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement