Pagini recente » Cod sursa (job #2066005) | Cod sursa (job #2051929) | Cod sursa (job #1305405) | Cod sursa (job #592938) | Cod sursa (job #2088261)
#include<fstream>
#include<cstring>
#include<vector>
#include<iostream>
using namespace std;
ifstream f("data.in");
ofstream g("data.out");
struct hashcuv
{
int val;
int ordin;
};
int main()
{
int n;
f>>n;
char **lista=new char* [n];
int v[n];
for(int i=0;i<n;++i)
{
lista[i]=new char[200];
v[i]=0;
f>>lista[i];
}
hashcuv caracter[27][27];
for(int i=0;i<=26;++i)
{
for(int j=0;j<=26;++j)
{
caracter[i][j].val=0;
caracter[i][j].ordin=0;
}
}
int maxi=0;
int last_word;
for(int i=n-1;i>=0;--i)
{
char a,b,c,d;
a=lista[i][strlen(lista[i])-1];
b=lista[i][strlen(lista[i])-2];
c=lista[i][0];
d=lista[i][1];
if(caracter[int(c)-97][int(d)-97].val<(caracter[int(b)-97][int(a)-97].val+1))
{
caracter[int(c)-97][int(d)-97].val= caracter[int(b)-97][int(a)-97].val+1;
caracter[int(c)-97][int(d)-97].ordin=i;
v[i]=caracter[int(c)-97][int(d)-97].val;
}
if(caracter[int(c)-97][int(d)-97].val>maxi)
{
maxi=caracter[int(c)-97][int(d)-97].val;
last_word=i;
}
// g<<c<<d<<" "<<b<<a<<"\n";
}
/*for(int i=0;i<26;++i)
{
for(int j=0;j<26;++j)
g<<caracter[i][j].ordin<<" ";
g<<"\n";
}*/
g<<maxi<<"\n";
g<<lista[last_word]<<"\n"; --maxi;
for(int i=last_word+1;i<n&&maxi>0;++i)
{
char a=lista[i][0];
char b=lista[i][1];
if(v[i]==maxi)
{ cout<<"AICICICICI\n";
char c,d;
c=lista[last_word][strlen(lista[last_word])-2];
d=lista[last_word][strlen(lista[last_word])-1];
if(a==c&&b==d)
{
cout<<"Acum\n";
--maxi;
g<<lista[i]<<"\n";
last_word=i;
}
}
}
/*while(maxi>0)
{
g<<lista[last_word]<<"\n";
char a,b;
a=lista[last_word][strlen(lista[last_word])-2];
b=lista[last_word][strlen(lista[last_word])-1];
last_word=caracter[int(a)-97][int(b)-97].ordin;
--maxi;
}
/*for(int i=0;i<n;++i)
{
g<<lista[i]<<" ";
g<<"\n";
}*/
return 0;
}