Pagini recente » Cod sursa (job #1875869) | Cod sursa (job #454136) | Cod sursa (job #2100784) | Cod sursa (job #2193103) | Cod sursa (job #984520)
Cod sursa(job #984520)
#include <iostream>
#include <fstream>
#include <list>
using namespace std;
const int mask = ( 1 << 20 ) - 1;
int N;
list <int> T;
/// T[1] = 1, T[2] = 2, T[3] = 6, T[4] = 12;
/// T[i] = T[i - 1] + T[i - 3] + 2 * (i - 2)
int main()
{
ifstream f("12perm.in");
ofstream g("12perm.out");
f >> N;
switch( N )
{
case 1: T.push_back( 1 ); break;
case 2: T.push_back( 2 ); break;
case 3: T.push_back( 6 ); break;
case 4: T.push_back( 12 ); break;
default:
T.push_back( 2 );
T.push_back( 6 );
T.push_back( 12 );
for ( int i = 5; i <= N; ++i )
{
T.push_back( ( T.back() + T.front() + 2 * ( i - 2 ) ) & mask );
T.pop_front();
}
break;
}
g << T.back() << "\n";
f.close();
g.close();
return 0;
}