# ZeroJudge - f606: 2. 流量 ### 題目連結:https://zerojudge.tw/ShowProblem?problemid=f606 ###### tags: `ZeroJudge` `模擬` ```cpp= #include <iostream> #include <cstring> #include <algorithm> using namespace std; int main() { cin.sync_with_stdio(false); cin.tie(nullptr); int servers, cities, schemes, flowMap[50][50], flowRoute[50][50], assignment, minimumCost, nowCost; while (cin >> servers >> cities >> schemes) { minimumCost = (1 << 30); for (int i = 0; i < servers; ++i) for (int j = 0; j < cities; ++j) cin >> flowMap[i][j]; while (schemes--) { nowCost = 0; memset(flowRoute, 0, sizeof(flowRoute)); for (int i = 0; i < servers; ++i) { cin >> assignment; for (int j = 0; j < cities; ++j) flowRoute[assignment][j] += flowMap[i][j]; } for (int i = 0; i < cities; ++i) for (int j = 0; j < cities; ++j) if (i == j) nowCost += flowRoute[i][j]; else nowCost += (flowRoute[i][j] << 1) + (flowRoute[i][j] > 1000 ? 1000 : flowRoute[i][j]); minimumCost = min(minimumCost, nowCost); } cout << minimumCost << '\n'; } } ```