Pentru această operație este nevoie să te autentifici.
Cod sursă (job #800062)
Utilizator |
|
IP | ascuns |
---|---|---|---|
Problemă | Cristela (clasele 9-12) | Compilator | cpp-32 | 0,89 kb |
Rundă | Arhiva de probleme | Status | evaluat |
Dată | 16 dec. 2024 00:14:36 | Scor | 5 |
#include <fstream>
#include <unordered_set>
#include <stack>
#include <string>
using namespace std;
ifstream cin("cristela.in");
ofstream cout("cristela.out");
unordered_set<int> v[40];
unordered_set<int> adj[500005];
stack<int> S1;
int main()
{
ios::sync_with_stdio(false);
int n; string s;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> s;
for (int j = 0; j < s.length(); j++)
{
if (!v[s[j] - 'a'].empty())
{
for (auto e : v[s[j] - 'a'])
{
if(i!=e)
{
adj[e].insert(i);
adj[i].insert(e);
}
}
}
v[s[j] - 'a'].insert(i);
}
}
int c = 0;
for (int i = 0; i < n; i++)
{
if (!adj[i].empty())
{
for (const int &e : adj[i])
{
c++;
//cout << e<< " ";
S1.push(e);
}
while(!S1.empty())
{
adj[S1.top()].erase(i);
S1.pop();
}
}
}
cout << c;
}