Cod sursă (job #800061)

Utilizator avatar Dumy Dumitrescu Andrei Dumy 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:14 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;
}