Pagini recente » Cod sursa (job #614302) | Cod sursa (job #2981031) | Cod sursa (job #2127384) | Cod sursa (job #1274456) | Cod sursa (job #3233688)
#include <iostream>
#include <vector>
#include <algorithm>
#include <limits.h>
using namespace std;
// Function to calculate the number of bombs needed for each pair of cities
int calculateBombs(vector<vector<int>> &bombs, int u, int v) {
return bombs[u][v];
}
int main() {
int N, M, P;
cin >> N >> M >> P;
vector<vector<int>> bombs(N + 1, vector<int>(N + 1, 0));
for (int i = 0; i < M; ++i) {
int u, v, b;
cin >> u >> v >> b;
bombs[u][v] = b;
}
int X, Y, A, B, C, D;
cin >> X >> Y >> A >> B >> C >> D;
vector<pair<int, int>> pairs;
pairs.push_back({X, Y});
// Generate the pairs of cities using the given formula
for (int i = 1; i < M; ++i) {
int newX = (A * pairs[i - 1].first + B * pairs[i - 1].second + C) % N + 1;
int newY = (A * pairs[i - 1].second + B * pairs[i - 1].first + D) % N + 1;
pairs.push_back({newX, newY});
}
// Calculate minimum bombs required for each of the last P pairs
vector<int> minBombs(M, INT_MAX);
for (int i = 0; i < M; ++i) {
minBombs[i] = calculateBombs(bombs, pairs[i].first, pairs[i].second);
}
// Output the minimum bombs required for the last P pairs
for (int i = M - P; i < M; ++i) {
cout << minBombs[i] << endl;
}
return 0;
}