Cod sursa(job #2743630)
| Utilizator | Data | 23 aprilie 2021 13:06:04 | |
|---|---|---|---|
| Problema | Loto | Scor | 95 |
| Compilator | cpp-64 | Status | done |
| Runda | Teme Pregatire ACM Unibuc 2014, Anul I | Marime | 1.4 kb |
#include <iostream>
#include <fstream>
#include <vector>
#include <unordered_map>
#include <string>
#include <sstream>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
int N, S, dif, a, b;
vector<int> v;
unordered_map<int, string> m;
string to_stringg(int x)
{
stringstream ss;
ss << x;
return ss.str();
}
int main()
{
int i, x, s1, s2, j;
f >> N >> S;
for(i = 1; i <= N; i ++)
{
f >> x;
v.push_back(x);
}
for(i = 0; i < N; i++)
for(j = 0; j < N; j++)
m[v[i] + v[j]] = to_stringg(v[i]) + " " + to_stringg(v[j]);
unordered_map<int,string>::iterator q, r;
for(q = m.begin(); q != m.end(); q++)
for(r = m.begin(); r != m.end(); r++)
{
dif = S - q->first - r->first;
if(m.find(dif) != m.end())
{
g << q->second << " " << r->second << " " << m[dif];
return 0;
}
}
g << -1;
return 0;
}