Pagini recente » Cod sursa (job #842302) | Cod sursa (job #1716832) | Cod sursa (job #1609588) | Cod sursa (job #2325943) | Cod sursa (job #2219620)
#include <bits/stdc++.h>
using namespace std;
ifstream in("ordine.in");
ofstream out("ordine.out");
std::map<char,int>ap;
int main()
{
char x;
int nr=0;
while(in>>x)
{nr++;
ap[x]++;
}
bool prim=false;
char y;
while(nr--)
{ if(!prim)
{
prim=true;
for (std::map<char,int>::iterator it=ap.begin(); it!=ap.end(); ++it)
{y=it->first;it->second--; break;
}
out<<y;
}
else
{
bool ok =false;
for (std::map<char,int>::iterator it=ap.begin(); it!=ap.end(); ++it)
if(it->second>=nr and it->first!=y and it->second)
{
out<<it->first; --it->second;
ok=true;
break;
}
if(!ok)
for (std::map<char,int>::iterator it=ap.begin(); it!=ap.end(); ++it)
{ if(it->second && it->first!=y)
{
out << it->first; it->second--; y=it->first; break;
}
}
}
for (std::map<char,int>::iterator it=ap.begin(); it!=ap.end(); ++it)
std::cout << it->first << " => " << it->second << '\n';
cout<<endl;
}
return 0;
}