/*C++版本第一题,模拟*/ #include<iostream> #include<vector> using namespace std; int main() {     const int T =100;     int n;     cin>>n;     vector<int> carweight(n,0);     vector<int> time(n,0);     vector<vector<int>> bridge(T,{100,80,60});     for(int i=0;i<n;i++){         cin>>carweight[i];     }     for(int i=0;i<n;i++){         cin>>time[i];     }     int ni=0;     for(int i=0;i<T&&ni<n;i++) {//时刻点,从0到T,需要调度车辆小于n         //小于61才需要调度,同时车辆到达时间小于等于当前时间i,就去遍历三个桥         if(time[ni]<61&&time[ni] <= i) {             for(int j=0;j<3;j++) {                 if(bridge[i][j]>=carweight[ni]) {                     可以走时,把这座桥之后的30分钟全部减掉,T>90,数组不会溢出,在笔试时可以设置1030                     for(int k=i;k<i+30;k++) {                         bridge[k][j] -= carweight[ni];                     }                     ni++;                     break;                 }             }         }     }     cout<<100-bridge[60][0]<<" "<<80-bridge[60][1]<<" "<<60-bridge[60][2]<<endl;     return 0; }