#include<bits/stdc++.h> using namespace std; int sc[1000000],xc[1000000];//数组分别记录第i站上、下车的人数 int main() { int n,m,x,y,z; cin>>n>>m; for(int i=1; i<=m; i++) {//循环输入并设置上车、下车数组 cin>>x>>y>>z; sc[x]+=z; xc[y]+=z; if(x>y) { sc[1]+=z; } } int zrs=0,zh=0;//存放当前的火车上的人数 for(int j=1; j<=n; j++) { zrs+=sc[j]; zrs-=xc[j];//循环模拟上下车 zh=max(zh,zrs);//更新最多时的人数 } //判断并输出所需车厢数 if(zh%36!=0) { cout<<zh/36+1<<endl; } else { cout<<zh/36<<endl; } return 0; }
要考虑上车站在下车站 (转一圈的情况)所以用
if(x>y) { sc[1]+=z; }来判断