Pagini recente » Cod sursa (job #564784) | Cod sursa (job #2444842) | Cod sursa (job #766489) | Cod sursa (job #2509626) | Cod sursa (job #1251924)
#include <fstream>
#include <string>
bool
demo
()
{ bool x[26][26];
unsigned c[1001][26];
::std::size_t s;
::std::size_t k;
for(k=0; 26>k; ++k)
{ for(s=0; 26>s; ++s)
{ x[k][s] = true;
}
}
::std::ifstream is("nrcuv.in");
::std::size_t N;
::std::size_t M;
is >> N >> M;
::std::string u;
::std::string w;
::std::size_t i;
for(i=0; M>i; ++i)
{ is >> u >> w;
s = (u.at(0) - 'a');
k = (w.at(0) - 'a');
x[k][s] = false;
x[s][k] = false;
}
unsigned const m = 104659;
for(k=0; 26>k; ++k)
{ c[1][k] = 1;
}
unsigned e;
for(i=2; N>=i; ++i)
{ for(k=0; 26>k; ++k)
{ e = 0;
for(s=0; 26>s; ++s)
{ if(x[k][s])
{ e += c[i-1][s];
e %= m;
}
}
c[i][k] = e;
}
}
e = 0;
for(k=0; 26>k; ++k)
{ e += c[N][k];
e %= m;
}
::std::ofstream os("nrcuv.out");
os << e << '\n';
return true; // Success.
}
int
main
()
{ int status;
try
{ bool const ok = demo();
status = ( ok ? 0 : 1 );
}
catch ( ... )
{ status = 2;
}
return status;
}