#include<algorithm>
#include<numeric>
#include<iostream>
#include<string>
#include<functional>
#include<vector>

int main()
{
 string s="This is a test.";

 vector<char> cmap(256);
 fill(cmap.begin()+1, cmap.end( ), 1 );
 partial_sum( cmap.begin( ), cmap.end( ), cmap.begin( ));
 swap_ranges( cmap.begin( )+'A', cmap.begin( )+'Z'+1, cmap.begin( )+'a' );
 transform( s.begin( ), s.end( ), s.begin( ), bind1st( mem_fun1_ref(&vector<char>::operator[]), cmap ));

 cout << s << endl;
}