Pagini recente » Cod sursa (job #342872) | Cod sursa (job #1712352) | Cod sursa (job #1230724) | Cod sursa (job #340424) | Cod sursa (job #943828)
Cod sursa(job #943828)
#include<fstream>
#include<vector>
using namespace std;
const int kmod = 366019;
class obj{
public:
int x, y, z, key, sum;
obj(){};
obj(int x1, int y1, int z1){
x = x1;
y = y1;
z = z1;
key = (x + y + z) % kmod;
sum = x + y + z;
}
};
vector<obj> h[kmod];
int isthere(int sum){
if(sum < 0)
return 0;
int key = sum % kmod;
for(int i = 0; i < h[key].size(); ++i)
if(h[key][i].sum == sum)
return i + 1;
return 0;
}
void add(obj A){
h[A.key].push_back(A);
}
int main(){
ifstream in("loto.in");
ofstream out("loto.out");
int n, s;
in >> n >> s;
int a[105];
for(int i = 1; i <= n; ++i)
in >> a[i];
for(int i = 1; i <= n; ++i)
for(int j = i; j <= n; ++j)
for(int k = j; k <= n; ++k){
obj t(a[i], a[j], a[k]);
int z = isthere(s - t.sum), ks;
ks = (s - t.sum) % kmod;
if(z){
--z;
// out << a[i] << " " << a[j] << " " << a[k] << " " << h[ks][z].x << " " << h[ks][z].y << " " << h[ks][z].z;
// return 0;
}
add(t);
}
out << "-1";
return 0;
}