Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <fstream>
- using namespace std;
- int v, st, dr, valmax = 0;
- vector< vector<int> > valoriok;
- void procesareTraseu(vector<int> traseu, int suma) {
- if (suma < valmax) return;
- if (suma == valmax) {
- valoriok.push_back(traseu);
- }
- if (suma > valmax) {
- valmax = suma;
- valoriok = {};
- valoriok.push_back(traseu);
- }
- }
- void display(vector< vector<int> > values) {
- for (int i = 0; i < values.size(); i++) {
- for (int u = 0; u < values[i].size(); u++) {
- cout << values[i][u] << " ";
- }
- cout << endl;
- }
- }
- void bk(vector<int> steps, int processRow, int processCol, unsigned long int totalRows, vector<vector<int>> values) {
- steps.push_back(processCol);
- if (processRow < totalRows) {
- bk(steps, processRow + 1, processCol, totalRows, values);
- bk(steps, processRow + 1, processCol + 1, totalRows, values);
- }
- else {
- int s = 0;
- for (int i = 0; i < values.size(); i++) {
- s += values[i][steps[i] - 1];
- }
- procesareTraseu(steps, s);
- }
- }
- int main() {
- ifstream fin("summax1.in");
- ofstream fout("summax1.out");
- unsigned long n;
- fin >> v >> n >> st >> dr;
- vector< vector<int> > values;
- for (unsigned int i = 1; i <= n; i++) {
- values.push_back({});
- for (unsigned int u = 0; u < i; u++) {
- int temp;
- fin >> temp;
- values[values.size() - 1].push_back(temp);
- }
- }
- bk({}, 1, 1, n, values);
- //display(values);
- /*for (int i = 0; i < valoriok.size(); i++) {
- for (int u = 0; u < valoriok[i].size(); u++) {
- cout << valoriok[i][u] << " ";
- }
- cout << endl;
- }*/
- if (v == 1) fout << valoriok.size();
- else {
- for (int i = st; i <= dr; i++) {
- for (int u = 0; u < valoriok[i].size(); u++) {
- fout << valoriok[i][u] << " ";
- }
- fout << endl;
- }
- }
- fin.close();
- fout.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement