Thursday, December 7, 2017

UVa 897 - Anagrammatic Primes

Problem Statement : https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=838

Hints : 

1. There is no Anagrammatic Prime in the interval [991,10000000]. So for any number N >= 991, it would be efficient to print 0. Therefore, checking prime upto 1000 is enough for this problem.

2. If any from the rest of primes have any even digit, it can't be an Anagrammatic Prime.

3. Now, just iterate the prime[] array upto 999 and check their digits and all the permutations also. If any of the permutation is not prime, the ith number can't be an Anagrammatic Prime.

4. Permutation can be generated by backtracking, but you can implement next_permutation from C++ STL. 😊

5. After checking all the Anagrammatic Primes, just store them in an array (I used std::vector).

6. Now, make l, the next power of 10 greater than n and run a loop from n+1 to l. Compare them with the stored Anagrammatic Primes. If found, print that. Otherwise, print 0.

Solution : Here is my solution uploaded on GitHub. Before seeing the solution ensure that you have tried enough. 😃

Wednesday, November 15, 2017

কাব্যিক ভাষ্য ৪.১

________ <3 একটি আলোকিত জ্যোৎস্নার অপেক্ষায় <3 ________

রংধনু স্নান পর্ব শেষ হয়েছে এই কিছুক্ষণ আগে । 
পড়ন্ত বিকেল ।

রোদের প্রখরতা বেশ কমে এসেছে এখন ,

যেন স্তিমিত হওয়ার অপেক্ষায় ।

কিন্তু প্রণয়ের প্রবলতা ? 
সেটি যে স্নিগ্ধ আবরণ ছড়িয়ে যাচ্ছে এখনও ।

মাধুর্যমণ্ডিত প্রহরটি তার রেশ মিলিয়ে দিতে যেন রাজি হল না ।
তাতে ক্ষতি কি ? 


সূর্যটা টুপ করে ডুবে যাবে এখনি ।
এই যা ! 
লাল আভা দিগন্ত থেকে ছুটি চাইছে । 
রাতের চাঁদকে অভিবাদন জানাতেই যেন তার এই আকুতি !
আপাতত তাই রেশ কাটছে না ।


আজকের চাঁদটা তাই মনে হচ্ছে আলো – ছায়ার খেলা খেলছে ।
চাঁদের আলো বেশ দৃশ্যমান । 
তবুও যেন আলো কোন এক জালে আটকা পড়েছে ! 
আমার কাছে তাই ঘোর অমাবস্যা ঠেকছে । 

" এত সুন্দর একটি জ্যোৎস্না অমাবস্যা হয় কি করে ? " - তুমি জিজ্ঞেস করলে ।।
আমি উত্তর দিতে অপারগ । 

জ্যোৎস্নার দ্যুতি আমাকে ছুঁয়ে যায় নি ।


নিজেকে জন্মান্ধ মনে হচ্ছে । 
আজকাল জ্যোৎস্নার আলো – ছায়ার খেলা আমার চোখে কাজ করে না ! 
কিন্তু চাঁদের আলো ঠিকরে ঝরে পড়ছে তার গা থেকে । 
তুমি মুগ্ধ দৃষ্টিতে তাকিয়ে আছ একপলকে । 
আর আমি , দৃষ্টিশূন্য ।


" ইশশ , যদি এক পশলা বৃষ্টি হত !!! "
" জ্যোৎস্নার রাতে বৃষ্টি ? "
তুমি স্নিগ্ধ হাসি দিলে ।


তবে বৃষ্টি হলে খুব যে মন্দ হত তা কিন্তু নয় । 
চোখের রাত্রি দূর হত হয়ত !

ওহ হো , এ যে দেখছি বৃষ্টি শুরু হয়ে গেছে ! 
প্রকৃতি আমার প্রার্থনা শুনেছে তাহলে ! 
আমি তোমায় ডাকছি , 
কিন্তু তোমার সাড়া মিলছে না ।
তুমি অদৃশ্য হতে চাইছ জ্যোৎস্নায় । 
জ্যোৎস্নার প্রতি তোমার যে রয়েছে অস্পৃশ্য আকর্ষণ ! 
তোমার তাই আমার ডাকে সাড়া দেয়া হল না ।

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.


ঘুমটা ভেঙ্গে গেল এখনি !
এত তাড়াতাড়ি ? 
উফ , অসময়ে ঘুমিয়ে পড়েছিলাম !
স্বপ্নটা মাথায় ঘুরপাক খাচ্ছে এখনও ,
কিন্তু সচেতন মনের কাছে এই অবচেতন চিন্তা বেশিক্ষণ টিকতে পারল না।


তবে আজ কি জ্যোৎস্না ? 
দৌড়ে গেলাম জানালায় , কার্নিশের ফাঁকে ; 
যেখানে এক চিলতে আলো উঁকি মারে সবসময় ।


কিন্তু কোথায় ? 
জ্যোৎস্নার অস্তিত্ব নেই সেখানে ।
তোমার কথা এবার মনে না এসে পারল না !


কারণ তুমি যে ছিলে ,

একটি আলোকিত জ্যোৎস্নার অপেক্ষায়!


© শাহ শিশির ০.০৯
১৫ - ১১ - ১৪

Sunday, November 5, 2017

10018 - Reverse and Add

/***

            Bismillahir Rahmanir Rahim
            Read the name of Allah, who created you!!!
            Author : Shah Newaj Rabbi Shishir
            Department of CSE, City University, Bangladesh.

***/

#include <bits/stdc++.h>
using namespace std;

#define sf scanf
#define pf printf
#define ssf sscanf
#define spf sprintf
#define fsf fscanf
#define fpf fprintf
#define fast ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define scase sf ("%d",&tc)
#define sn sf ("%d",&n)
#define whilecase while (tc--)
#define eof while (cin >> n)
#define forloop for (pos=1; pos<=tc; pos++)
#define arrayloop (i=0; i<n; i++)
#define cinstr cin >> str
#define getstr getline (cin,str)
#define pcase pf ("Case %d: ",pos)
#define pii pair <int,int>
#define pll pair <llu,llu>
#define pb push_back
#define in insert
#define llu unsigned long long
#define lld long long
#define U unsigned int
#define endl "\n"

const int MOD = 1000000007;
const int MAX = 1000005;

pll isPal (llu n,llu k)
{
    llu temp=n,rev=0,rem,sum;
    pll p;

    while (n)
    {
        rem = n % 10;
        rev = rev * 10 + rem;
        n /= 10;
    }

    sum = temp+rev;

    rev = 0, temp = sum;

    while (sum)
    {
        rem = sum % 10;
        rev = rev * 10 + rem;
        sum /= 10;
    }

    if (rev == temp)
    {
        p.first = ++k;
        p.second = rev;
        return p;
    }
    else
        isPal (temp,++k);
}

int main (void)
{
    /*
    freopen ("input.txt","r",stdin);
    freopen ("output.txt","w",stdout);
    */

    lld tc,n;

    sf ("%llu",&tc);

    while (tc--)
    {
        sf ("%llu",&n);

        pll p = isPal(n,0);

        pf ("%llu %llu\n",p.first,p.second);
    }

    return 0;
}

Thursday, November 2, 2017

17A. Noldbach problem

/***

            Bismillahir Rahmanir Rahim
            Read the name of Allah, who created you!!!
            Author : Shah Newaj Rabbi Shishir
            Department of CSE, City University, Bangladesh.

***/

#include <bits/stdc++.h>
using namespace std;

#define sf scanf
#define pf printf
#define ssf sscanf
#define spf sprintf
#define fsf fscanf
#define fpf fprintf
#define fast ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define scase sf ("%d",&tc)
#define sn sf ("%d",&n)
#define whilecase while (tc--)
#define eof while (cin >> n)
#define forloop for (pos=1; pos<=tc; pos++)
#define arrayloop (i=0; i<n; i++)
#define cinstr cin >> str
#define getstr getline (cin,str)
#define pcase pf ("Case %d: ",pos)
#define pii pair <int,int>
#define pb push_back
#define in insert
#define llu unsigned long long
#define lld long long
#define U unsigned int
#define endl "\n"

const int MOD = 1000000007;
const int MAX = 1005;
bool prime[MAX];
vector <int> v;

int main (void)
{
    /*
    freopen ("input.txt","r",stdin);
    freopen ("output.txt","w",stdout);
    */
    int i,j,n,k,c,val;

    prime[0] = prime[1] = 0;
    v.pb(2);

    for (i=4; i<MAX; i+=2)
        prime[i] = true;

    for (i=3; i*i<=MAX; i+=2)
        if (!prime[i])
            for (j=i*i; j<=MAX; j+=2*i)
                prime[j] = true;

    for (i=3; i<MAX; i+=2)
        if (!prime[i])
            v.pb(i);

    while (sf ("%d %d",&n,&k) != EOF)
    {
        c = 0;

        for (i=0; v[i]<=n; i++)
        {
            val = v[i]-1;

            for (j=0; v[j]<(val/2); j++)
            {
                if (v[j]+v[j+1] == val)
                {
                    ++c;
                    break;
                }
            }
        }

        if (c >= k)
            pf ("YES\n");
        else
            pf ("NO\n");
    }

    return 0;
}

Wednesday, November 1, 2017

10970 - Big Chocolate

/***

            Bismillahir Rahmanir Rahim
            Read the name of Allah, who created you!!!
            Author : Shah Newaj Rabbi Shishir
            Department of CSE, City University, Bangladesh.

***/

#include <bits/stdc++.h>
using namespace std;

#define sf scanf
#define pf printf
#define ssf sscanf
#define spf sprintf
#define fsf fscanf
#define fpf fprintf
#define fast ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define scase sf ("%d",&tc)
#define sn sf ("%d",&n)
#define whilecase while (tc--)
#define eof while (cin >> n)
#define forloop for (pos=1; pos<=tc; pos++)
#define arrayloop (i=0; i<n; i++)
#define cinstr cin >> str
#define getstr getline (cin,str)
#define pcase pf ("Case %d: ",pos)
#define pii pair <int,int>
#define pb push_back
#define in insert
#define llu unsigned long long
#define lld long long
#define U unsigned int
#define endl "\n"

const int MOD = 1000000007;
const int MAX = 1000005;

int main (void)
{
    /*
    freopen ("input.txt","r",stdin);
    freopen ("output.txt","w",stdout);
    */

    int i,j;

    while (sf ("%d %d",&i,&j) != EOF)
        pf ("%d\n",i*j-1);

    return 0;
}

272 - TEX Quotes

/***

            Bismillahir Rahmanir Rahim
            Read the name of Allah, who created you!!!
            Author : Shah Newaj Rabbi Shishir
            Department of CSE, City University, Bangladesh.

***/

#include <bits/stdc++.h>
using namespace std;

#define sf scanf
#define pf printf
#define ssf sscanf
#define spf sprintf
#define fsf fscanf
#define fpf fprintf
#define fast ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define scase sf ("%d",&tc)
#define sn sf ("%d",&n)
#define whilecase while (tc--)
#define eof while (cin >> n)
#define forloop for (pos=1; pos<=tc; pos++)
#define arrayloop (i=0; i<n; i++)
#define cinstr cin >> str
#define getstr getline (cin,str)
#define pcase pf ("Case %d: ",pos)
#define pii pair <int,int>
#define pb push_back
#define in insert
#define llu unsigned long long
#define lld long long
#define U unsigned int
#define endl "\n"

const int MOD = 1000000007;
const int MAX = 1000005;

int main (void)
{
    /*
    freopen ("input.txt","r",stdin);
    freopen ("output.txt","w",stdout);
    */

    string str;
    int len,i,k=0;

    while (getline (cin,str))
    {
        len = str.size();

        for (i=0; i<len; i++)
        {
            if (str[i] == '\"')
            {
                ++k;

                if (k & 1)
                    pf ("``");
                else
                    pf ("''");
            }
            else
                pf ("%c",str[i]);
        }

        pf ("\n");
    }

    return 0;
}

Saturday, October 28, 2017

1259 - Even and Odd

/***

            Bismillahir Rahmanir Rahim
            Read the name of Allah, who created you!!!
            Author : Shah Newaj Rabbi Shishir
            Department of CSE, City University, Bangladesh.

***/

#include <bits/stdc++.h>
using namespace std;

#define sf scanf
#define pf printf
#define ssf sscanf
#define spf sprintf
#define fsf fscanf
#define fpf fprintf
#define fast ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define scase sf ("%d",&tc)
#define sn sf ("%d",&n)
#define whilecase while (tc--)
#define eof while (cin >> n)
#define forloop for (pos=1; pos<=tc; pos++)
#define arrayloop (i=0; i<n; i++)
#define cinstr cin >> str
#define getstr getline (cin,str)
#define pcase pf ("Case %d: ",pos)
#define pii pair <int,int>
#define pb push_back
#define in insert
#define llu unsigned long long
#define lld long long
#define U unsigned int
#define endl "\n"

const int MOD = 1000000007;
const int MAX = 1000005;

int main (void)
{
    /*
    freopen ("input.txt","r",stdin);
    freopen ("output.txt","w",stdout);
    */

    int tc,n,len,i;

    while (sf ("%d",&tc) != EOF)
    {
        vector <int> even,odd;

        while (tc--)
        {
            sf ("%d",&n);

            if (n & 1)
                odd.pb(n);
            else
                even.pb(n);
        }

        sort (even.begin(),even.end());
        sort (odd.begin(),odd.end());

        len = even.size();

        for (i=0; i<len; ++i)
            pf ("%d\n",even[i]);

        len = odd.size();

        for (i=len-1; i>=0; i--)
            pf ("%d\n",odd[i]);
    }

    return 0;
}

Friday, October 27, 2017

1239 - Bloggo Shortcuts

/***

            Bismillahir Rahmanir Rahim
            Read the name of Allah, who created you!!!
            Author : Shah Newaj Rabbi Shishir
            Department of CSE, City University, Bangladesh.

***/

#include <bits/stdc++.h>
using namespace std;

#define sf scanf
#define pf printf
#define ssf sscanf
#define spf sprintf
#define fsf fscanf
#define fpf fprintf
#define fast ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define scase sf ("%d",&tc)
#define sn sf ("%d",&n)
#define whilecase while (tc--)
#define eof while (cin >> n)
#define forloop for (pos=1; pos<=tc; pos++)
#define arrayloop (i=0; i<n; i++)
#define cinstr cin >> str
#define getstr getline (cin,str)
#define pcase pf ("Case %d: ",pos)
#define pii pair <int,int>
#define pb push_back
#define in insert
#define llu unsigned long long
#define lld long long
#define U unsigned int
#define endl "\n"

const int MOD = 1000000007;
const int MAX = 1000005;

int main (void)
{
    /*
    freopen ("input.txt","r",stdin);
    freopen ("output.txt","w",stdout);
    */

    char str[55];
    int len,i,c1,c2;

    while (gets(str))
    {
        len = strlen(str), c1 = c2 = 0;

        for (i=0; i<len; ++i)
        {
            if (str[i] == '_')
            {
                ++c1;

                if (c1 & 1)
                    pf ("<i>");
                else
                    pf ("</i>");
            }
            else if (str[i] == '*')
            {
                ++c2;

                if (c2 & 1)
                    pf ("<b>");
                else
                    pf ("</b>");
            }
            else
                pf ("%c",str[i]);
        }

        pf ("\n");
    }

    return 0;
}

1241 - Fit or Dont Fit II

/***

            Bismillahir Rahmanir Rahim
            Read the name of Allah, who created you!!!
            Author : Shah Newaj Rabbi Shishir
            Department of CSE, City University, Bangladesh.

***/

#include <bits/stdc++.h>
using namespace std;

#define sf scanf
#define pf printf
#define ssf sscanf
#define spf sprintf
#define fsf fscanf
#define fpf fprintf
#define fast ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define scase sf ("%d",&tc)
#define sn sf ("%d",&n)
#define whilecase while (tc--)
#define eof while (cin >> n)
#define forloop for (pos=1; pos<=tc; pos++)
#define arrayloop (i=0; i<n; i++)
#define cinstr cin >> str
#define getstr getline (cin,str)
#define pcase pf ("Case %d: ",pos)
#define pii pair <int,int>
#define pb push_back
#define in insert
#define llu unsigned long long
#define lld long long
#define U unsigned int
#define endl "\n"

const int MOD = 1000000007;
const int MAX = 1000005;

int main (void)
{
    /*
    freopen ("input.txt","r",stdin);
    freopen ("output.txt","w",stdout);
    */

    char a[1005],b[1005];
    int tc,l1,l2,d,i,j;

    sf ("%d",&tc);

    while (tc--)
    {
        sf ("%s %s",a,b);

        l1 = strlen(a), l2 = strlen(b);

        if (l2 > l1)
            pf ("nao encaixa\n");
        else
        {
            d = l1-l2;

            for (i=d,j=0; i<l1,j<l2; i++,j++)
            {
                if (a[i] != b[j])
                {
                    pf ("nao encaixa\n");
                    break;
                }
            }

            if (j == l2)
                pf ("encaixa\n");
        }
    }

    return 0;
}

1240 - Fit or Dont Fit I

/***

            Bismillahir Rahmanir Rahim
            Read the name of Allah, who created you!!!
            Author : Shah Newaj Rabbi Shishir
            Department of CSE, City University, Bangladesh.

***/

#include <bits/stdc++.h>
using namespace std;

#define sf scanf
#define pf printf
#define ssf sscanf
#define spf sprintf
#define fsf fscanf
#define fpf fprintf
#define fast ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define scase sf ("%d",&tc)
#define sn sf ("%d",&n)
#define whilecase while (tc--)
#define eof while (cin >> n)
#define forloop for (pos=1; pos<=tc; pos++)
#define arrayloop (i=0; i<n; i++)
#define cinstr cin >> str
#define getstr getline (cin,str)
#define pcase pf ("Case %d: ",pos)
#define pii pair <int,int>
#define pb push_back
#define in insert
#define llu unsigned long long
#define lld long long
#define U unsigned int
#define endl "\n"

const int MOD = 1000000007;
const int MAX = 1000005;

int main (void)
{
    /*
    freopen ("input.txt","r",stdin);
    freopen ("output.txt","w",stdout);
    */

    char a[12],b[12];
    int tc,l1,l2,d,i,j;

    sf ("%d",&tc);

    while (tc--)
    {
        sf ("%s %s",a,b);

        l1 = strlen(a), l2 = strlen(b);

        if (l2 > l1)
            pf ("nao encaixa\n");
        else
        {
            d = l1-l2;

            for (i=d,j=0; i<l1,j<l2; i++,j++)
            {
                if (a[i] != b[j])
                {
                    pf ("nao encaixa\n");
                    break;
                }
            }

            if (j == l2)
                pf ("encaixa\n");
        }
    }

    return 0;
}

SPOJ Solutions

URI Solutions

1238 - Combiner

/***

            Bismillahir Rahmanir Rahim
            Read the name of Allah, who created you!!!
            Author : Shah Newaj Rabbi Shishir
            Department of CSE, City University, Bangladesh.

***/

#include <bits/stdc++.h>
using namespace std;

#define sf scanf
#define pf printf
#define ssf sscanf
#define spf sprintf
#define fsf fscanf
#define fpf fprintf
#define fast ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define scase sf ("%d",&tc)
#define sn sf ("%d",&n)
#define whilecase while (tc--)
#define eof while (cin >> n)
#define forloop for (pos=1; pos<=tc; pos++)
#define arrayloop (i=0; i<n; i++)
#define cinstr cin >> str
#define getstr getline (cin,str)
#define pcase pf ("Case %d: ",pos)
#define pii pair <int,int>
#define pb push_back
#define in insert
#define llu unsigned long long
#define lld long long
#define U unsigned int
#define endl "\n"

const int MOD = 1000000007;
const int MAX = 1000005;

int main (void)
{
    /*
    freopen ("input.txt","r",stdin);
    freopen ("output.txt","w",stdout);
    */

    int tc,l1,l2,i,j;
    char a[55],b[55];

    sf ("%d",&tc);

    while (tc--)
    {
        sf ("%s %s",a,b);
        string str;

        l1 = strlen(a),l2 = strlen(b),i=j=0;

        if (l1 == l2)
        {
            for (i=0; i<l1; i++)
            {
                str.pb (a[i]);
                str.pb (b[i]);
            }
        }
        else if (l1 > l2)
        {
            for (i=0; i<l2; i++)
            {
                str.pb (a[i]);
                str.pb (b[i]);
            }

            for (i=l2; i<l1; i++)
                str.pb (a[i]);
        }
        else
        {
            for (i=0; i<l1; i++)
            {
                str.pb (a[i]);
                str.pb (b[i]);
            }

            for (i=l1; i<l2; i++)
                str.pb (b[i]);
        }

        pf ("%s\n",str.c_str());
    }

    return 0;
}