描述:從Vladivostok站Moscow站共有n個站台,Vladivostok記為1,Moscow記為n,火車來回往返。現在給出從車站i到車站j和j到i的買票人數,計算需要的最少節車廂。 思路:水題,模擬即可。注意先下後上,用一個max保持最大的人數。 代碼:
//g++ 4.7.2 用到了變長數組
#include <cstdio>
int main()
{
int n;
scanf("%d", &n);
int a[n+1][n+1];
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= n; ++j)
scanf("%d", &a[i][j]);
int max = 0, sum = 0;
for (int i = 1; i <= n; ++i)
{
for (int t = 1; t < i; ++t)
sum -= a[t][i];
for (int j = i + 1; j <= n; ++j)
{
sum += a[i][j];
if (sum > max)
max = sum;
}
}
sum = 0;
for (int i = n; i >= 1; --i)
{
for (int t = n; t > i; --t)
sum -= a[t][i];
for (int j = i - 1; j >= 1; --j)
{
sum += a[i][j];
if (sum > max)
max = sum;
}
}
printf("%d\n", max % 36 == 0 ? max / 36 : max / 36 + 1);
return 0;
}