Cod sursa(job #2182419)

Utilizator BrateSBratescu Stefan BrateS Data 22 martie 2018 12:57:54
Problema Iepuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.38 kb
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;

const int kMod = 666013;

class input{
public:
    int x,y,z,a,b,c,n;
    input(int x, int y, int z, int a, int b, int c, int n) :
            x(x), y(y), z(z), a(a), b(b), c(c), n(n) {}
};
class Task {
 public:
	void solve() {
		read_input();
		print_output(get_result());
	}

 private:
	int n;
	vector<input*> v;

	void read_input() {
		ifstream fin("/home/brate/Desktop/Univeristy/PA/skel-lab03/cpp/iepuri/iepuri.in");
		fin >> n;
		for (int i = 0, x,y,z,a,b,c,days; i < n; i++) {
			fin >> x >> y >> z >> a >> b >> c >> days;
            auto *input1 = new input(x, y, z, a, b, c, days);
			v.push_back(input1);
		}
		fin.close();
	}

	vector<int> get_result() {
        vector<int> result;
        for(auto i : v){//for each input
            int d0 = i->x, d1 = i->y, d2 = i->z;
            for(int j = 0 ; j < i->n; j++){//for each day
                int prevD2 = d2;
                d2 = i->a * d2 + i->b * d1 + i->c * d0;
                d0 = d1;
                d1 = prevD2;
            }
            result.push_back(d0);
        }
        return result;
	}

	void print_output(vector<int> result) {
		ofstream fout("/home/brate/Desktop/Univeristy/PA/skel-lab03/cpp/iepuri/iepuri.out");
        for (auto i : result)
            fout << i << "\n";
		fout.close();
	}
};

int main() {
	Task task;
	task.solve();
	return 0;
}