Pagini recente » Cod sursa (job #1875919) | Cod sursa (job #2278014) | Cod sursa (job #2433597) | Cod sursa (job #2131103) | Cod sursa (job #829154)
Cod sursa(job #829154)
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
#define MOD 201203
vector <int> v [2] [MOD + 5];
int find (int x, int poz, bool h)
{
int n, i;
n = v [h] [poz] . size ();
for (i = 0; i < n; ++ i)
if (v [h] [poz] [i] == x) return i;
return -1;
}
int main()
{
ifstream f("muzica.in");
ofstream g("muzica.out");
int n, m, i, poz, answ = 0, pozx, pozx2;
long long nr1, nr2, nr3, C, D, E;
f >> n >> m;
f >> nr1 >> nr2 >> C >> D >> E;
for (i = 0; i < n; ++ i)
{
f >> nr3;
poz = nr3 % MOD;
v [0] [poz] . push_back (nr3);
}
poz = nr1 % MOD;
pozx = find (nr1, poz, 0);
if (pozx != -1)
{
++ answ;
//cout << nr1 << " ";
}
v [1] [poz] . push_back (nr1);
poz = nr2 % MOD;
pozx = find (nr2, poz, 0);
pozx2 = find (nr2, poz, 1);
if (pozx != -1 && pozx2 == -1)
{
++ answ;
//cout << nr2 << " ";
}
if (pozx2 == -1) v [1] [poz] . push_back (nr2);
for (i = 0; i < m - 2; ++ i)
{
//nr3 = (C * nr2 + D * nr1) % E;
poz = nr3 % MOD;
pozx = find (nr3, poz, 0);
pozx2 = find (nr3, poz, 1);
if (pozx2 == -1 && pozx != -1)
{
++ answ;
//cout << nr3 << " ";
}
if (pozx2 == -1) v [1] [poz] . push_back (nr3);
nr1 = nr2;
nr2 = nr3;
}
g << answ;
g << '\n';
return 0;
}