মঙ্গলবার, ৩১ জানুয়ারী, ২০১৭

UVA 336 - A Node Too Far

#include<bits/stdc++.h>
#include<string>
using namespace std;
vector<long long >vec[100000];
map<long long,long long>vis,visit,dist;
queue<long long>q;
main()
{
    long long n,cs=1,i;
    while(cin>>n)
    {
        if(n==0)
            break;
            dist.clear();
            vis.clear(),visit.clear();
            for(i=0;i<=100000;i++)
            {
                vec[i].clear();
            }
        long long a,b,no=0;

        for(i=1;i<=n;i++)
        {
            cin>>a>>b;
            vec[a].push_back(b);
            vec[b].push_back(a);
            if(vis[a]==0)
            {
                vis[a]=1;
                no++;
            }
            if(vis[b]==0)
            {
                vis[b]=1;
                no++;
            }
        }
        long long x,y,no1=0,x1,y1;
        while(cin>>x>>y)
        {
            no1=0;
            if(x==0&&y==0)
                break;
                visit.clear();
            q.push(x);
            visit[x]=1;
            dist[x]=0;
            while(!q.empty())
            {
                x1=q.front();
                q.pop();
                y1=vec[x1].size();
                for(i=0;i<y1;i++)
                {
                    if(visit[vec[x1][i]]==0)
                    {
                        dist[vec[x1][i]]=dist[x1]+1;
                        if(dist[vec[x1][i]]>y)
                            break;
                        no1++;
                        visit[vec[x1][i]]=1;
                        q.push(vec[x1][i]);
                    }
                }
            }
            printf("Case %lld: %lld nodes not reachable from node %lld with TTL = %lld.\n",cs++,no-no1-1,x,y);
        }
    }
}

digits of factorial

logam=logbm+logab
=> m log a=m log b+b log a
এখানে a=সংখ্যাটা যেই বেজে আছে 
b=সংখ্যাটা যেই বেজে পরিণত করা লাগবে 
m=সংখ্যাটি 

problem link:-
http://lightoj.com/volume_showproblem.php?problem=1045

source code:-
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. long long i;
  4. double dig[1000010];
  5. main()
  6. {
  7.     long long n,cs=1;
  8.     scanf("%lld",&n);
  9.     for(i=1;i<=1000000;i++)
  10.     {
  11.         dig[i]=dig[i-1]+log(i);
  12.     }
  13.     while(n--)
  14.     {
  15.         long long  a,b,sum=0,res;
  16.         long long ans;
  17.         scanf("%lld%lld",&a,&b);
  18.         res=(long long)(dig[a]/(dig[b]-dig[b-1]));
  19.         ans=res+1;
  20.         printf("Case %lld: %lld\n",cs++,ans);
  21.     }
  22. }

সোমবার, ৩০ জানুয়ারী, ২০১৭

UVA 441 Lotto

#include <stdio.h>
main()
 {
   int n,i,j,k,l,m,o,cnt = 0;
   int lotto[13];
   while(scanf("%d", &n) && n != 0)
   {
     if(cnt != 0)
     {
       printf("\n");
     }
     cnt++;
     for(i = 0 ; i < n ; i++)
     {
       scanf("%d", &lotto[i]);
     }
     for(i = 0 ; i < n ; i++)
     {
       for(j = i+1 ; j < n ; j++)
       {
         for(k = j+1 ; k < n ; k++)
         {
           for(l = k+1 ; l < n ; l++)
           {
             for(m = l+1 ; m < n ; m++)
             {
               for(o = m+1 ; o < n ;o++)
               {
                 printf("%d %d %d %d %d %d\n", lotto[i], lotto[j], lotto[k], lotto[l], lotto[m], lotto[o]);
               }
             }
           }
         }
       }
     }
   }
 }

UVA 11577 - Letter Frequency

#include<bits/stdc++.h>
using namespace std;
main()
{
    long n;
    cin>>n;
    getchar();
    while(n--)
    {
        string s;
        long i,ar[300]={0},k=0,mx=0;
        getline(cin,s);
        for(i=0;i<s.size();i++)
        {
            s[i]=tolower(s[i]);
        }
        for(i=0;i<s.size();i++)
        {
            k=s[i];
            ar[k]=ar[k]+1;
        }
        for(i=97;i<123;i++)
        {
            mx=max(mx,ar[i]);
        }
        char k1;
        for(i=97;i<123;i++)
        {
            if(ar[i]==mx)
            {
                cout<<char(i);
            }
        }
        cout<<endl;
    }
}

রবিবার, ২৯ জানুয়ারী, ২০১৭

UVA 567 - Risk

#include<bits/stdc++.h>
using namespace std;
long source,desti,ans,i,i1;
vector<long>vec[25];
void bfs(long int s,long  int d)
{
    queue< long  >q;
    long  visited[50]={0}, level[50];
    visited[s]=1;
    level[s]=0;
    q.push(s);
    while(!q.empty())
    {
        int u=q.front();
        for(i=0; i<vec[u].size(); i++)
        {
            int v = vec[u][i];
            if(!visited[v])
            {
                visited[v]=1;
                level[v] = level[u]+1;
                q.push(v);
            }
        }
        q.pop();
    }
    printf("%2ld to %2ld: %ld\n",s,d,level[d]);
}
main()
{
    long n,m,cs=1;
    while(scanf("%ld",&n)==1)
    {
        for(i=1;i<=n;i++)
        {
            cin>>m;
            vec[1].push_back(m);
            vec[m].push_back(1);
        }
        for(i=2;i<=19;i++)
        {
            cin>>n;
            for(i1=1;i1<=n;i1++)
                {
                    cin>>m;
                    vec[i].push_back(m);
                    vec[m].push_back(i);
                 }
        }
        long a1;
        cin>>a1;
        printf("Test Set #%ld\n",cs++);
        for(i1=1;i1<=a1;i1++)
        {
            cin>>source>>desti;
            bfs(source,desti);
        }
        cout<<endl;
        for(i=0;i<25;i++)
        {
            vec[i].clear();
        }
    }
}

শনিবার, ২৮ জানুয়ারী, ২০১৭

UVA 11995 I Can Guess the Data Structure! Solution

#include <cstdio>
#include <iostream>
#include <stack>
#include <queue>
using namespace std;
main()
{
    long  n;
    while(scanf("%ld",&n)!=EOF)
    {
        long a,b,i,st=1,qu=1,pq=1;
        stack<long>s;
        queue<long>q;
        priority_queue<long>pq1;
        for(i=1;i<=n;i++)
        {
            scanf("%ld%ld",&a,&b);
            if(a==1)
            {
                if(st!=0)
                {
                    s.push(b);
                }
                if(qu!=0)
                {
                    q.push(b);
                }
                if(pq!=0)
                {
                    pq1.push(b);
                }
            }
            else if(a==2)
            {
                if(s.size()!=0&&s.top()==b)
                {
                    s.pop();
                }
                else
                    st=0;
                if(q.size()!=0&&q.front()==b)
                {
                    q.pop();
                }
                else
                    qu=0;
                if(pq1.size()!=0&&pq1.top()==b)
                {
                    pq1.pop();
                }
                else
                    pq=0;
            }
        }
        if(st==1&&qu==0&&pq==0)
            printf("stack\n");
        else if(st==0&&qu==1&&pq==0)
            printf("queue\n");
        else if(st==0&&qu==0&&pq==1)
            printf("priority queue\n");
        else if(st==0&&qu==0&&pq==0)
            printf("impossible\n");
        else
            printf("not sure\n");
    }
}

শুক্রবার, ২৭ জানুয়ারী, ২০১৭

UVA 11909 - Soya Milk

#include<stdio.h>
#include<math.h>
#include<bits/stdc++.h>
using namespace std;
#define pi acos(-1)
int main() {
    int l,w,h;
    double ans,angle,tri,lombo;
    while(cin>>l>>w>>h>>angle)
        {
        lombo = l*tan(angle*pi/180.0);
        if(lombo>h)
            ans = 0.5*h*h*l*w/lombo;
        else {
            tri = 0.5*l*lombo*w;
            ans = (l*w*h)-tri;
        };
        printf("%.3lf mL\n",ans);
    }
    return 0;
}

UVA 11152 - Colourful Flowers

#include<stdio.h>
#include<math.h>
int main()
{
    double a,b,c,d=3.1415926535897931;
    double s=0,m=0,n=0,p=0,t=0,q=0,w=0;
    while(scanf("%lf%lf%lf",&a,&b,&c)!=EOF)
    {
      s=((a+b+c)/2);
      m=(sqrt(s*(s-a)*(s-b)*(s-c)));
      n=((a*b*c)/(4*m));
      p=(m/s);
      w=(d*n*n-m);
      t=(d*p*p);
      q=(m-t);

      printf("%.4lf %.4lf %.4lf\n",w,q,t);
    }
    return 0;
}

UVA 1185 - Big Number

#include<bits/stdc++.h>
using namespace std;
long ar[10000010]={0};
main()
{
    double sum=0;
    long i;
    for(i=1;i<=10000000;i++)
    {
        sum+=log10(i);
        ar[i]=long(sum);
    }
    long cs;
    cin>>cs;
    while(cs--)
    {
        long n;
        cin>>n;
        cout<<ar[n]+1<<endl;
    }
}

বৃহস্পতিবার, ২৬ জানুয়ারী, ২০১৭

UVA 10784 - Diagonal

#include<stdio.h>
#include<math.h>
int main()
{
long n,cas=1,x;
while(scanf("%ld",&n)==1)
{
    if(n==0)
        break;
    x=ceil((3+sqrt(9+8*n))/2);
    printf("Case %ld: %ld\n",cas,x);
    cas++;
}
}

UVA 11774 - Doom's Day

#include<bits/stdc++.h>
using namespace std;
long long ar[1000000]={0};
main()
{
    long cs,ts=1;
    cin>>cs;
    while(cs--)
    {
        long a,b;
        cin>>a>>b;
        printf("Case %ld: ",ts++);
        if(a==b)
            cout<<2<<endl;
        else
        {
            long ans,gcd=__gcd(a,b);
            ans=a/gcd+b/gcd;
            cout<<ans<<endl;
        }
    }
}

মঙ্গলবার, ২৪ জানুয়ারী, ২০১৭

UVA 10954 - Add All

#include<bits/stdc++.h>
using namespace std;
#define SIZE 1000000
long long ar[1000010]={0},i,j,status[1000010]={0},k=1;
main()
{
    long long n;
    while(cin>>n)
    {
        if(n==0)
            break;
        long long i,a,b,sum=0,sum1=0;
        priority_queue<long long >pq;
        for(i=0;i<n;i++)
        {
            cin>>a;
            pq.push(-a);
        }
        while(pq.size()>1)
        {
            a=pq.top();
            pq.pop();
            b=pq.top();
            pq.pop();
            sum=a+b;
            sum1+=sum;
            pq.push(sum);
        }
        cout<<-1*sum1<<endl;
    }
}

সোমবার, ২৩ জানুয়ারী, ২০১৭

UVA 12602 - Nice Licence Plates

#include<bits/stdc++.h>
using namespace std;
main()
{
    long n;
    cin>>n;
    while(n--)
    {
        string s;
        long i,sum=0,sum1=0,k,k1,k2;
        cin>>s;
        long l=s.size(),cnt=0,pow1=0;
        pow1=2;
        for(i=0;i<3;i++)
        {
            k2=s[i]-65;
            sum=sum+(k2*(pow(26,pow1)+.0000000001));
            pow1--;
        }
        for(i=4;i<l;i++)
        {
            k2=s[i]-48;
            sum1=sum1*10+k2;
        }
        long rslt=abs(sum-sum1);
        if(rslt<=100)
        {
            cout<<"nice"<<endl;
        }
        else
            cout<<"not nice"<<endl;
    }
}

UVA 514 Rails

#include<bits/stdc++.h>
using namespace std;
main()
{
    long  n;
    while(cin>>n)
    {
        long ar[100010]={0},i,cnt,pos;
        if(n==0)
                break;
            while(1)
            {
                cin>>ar[0];
                if(ar[0]==0)
                    {
                        cout<<endl;
                        break;
                    }
                for(i=1;i<n;i++)
                    {
                        cin>>ar[i];
                    }
               cnt=1,pos=0;
                stack<long>st;
               while(cnt<=n)
                {
                    st.push(cnt);
                    while(!st.empty()&&st.top()==ar[pos])
                    {
                        st.pop();
                        pos++;
                       if(pos>=n)
                        break;
                    }
                    cnt++;
                }
        if(st.empty())
            cout << "Yes" << endl;
        else
cout << "No" << endl;
        }
    }
}

বুধবার, ১৮ জানুয়ারী, ২০১৭

UVA 11151 Longest Palindrome

#include<bits/stdc++.h>
using namespace std;
long dp[1001][1001];
string s;
long call(long i,long j)
{
    if(i>j)return 0;
    if(i==j)return 1;
    if(dp[i][j]!=-1)return dp[i][j];
    long res=0;
     if(s[i]==s[j])
        res=call(i+1,j-1)+2;
    else
        res=max(call(i+1,j),call(i,j-1));
    return dp[i][j]=res;
}
int main()
{
    long cs,tst,p,l;
    cin>>cs;
    getchar();
    for(tst=0;tst<cs;tst++)
    {
        memset(dp,-1,sizeof(dp));
        getline(cin,s);
        l=s.size()-1;
        p=call(0,l);
        cout<<p<<endl;
    }
    return 0;
}

UVA 10192 Vacation

#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<iostream>
#include<cctype>
#include<map>
#include<stack>
#include<cstdlib>
#include <queue>
#include <vector>
#include<algorithm>
#define ll long long
#define sc scanf
#define pf printf
#define Pi 2*acos(0.0)
using namespace std;
long long int n,m,lcs[2000][2000];
int main()
{
    string s1,s2;
    long cs=1;
    while(getline(cin,s1))
    {
        if(s1=="#")
            break;
        getline(cin,s2);
        n=s1.size();
        m=s2.size();
        long i,j;
        for( i=1;i<=n;i++)
            for( j=1;j<=m;j++)
            {
                if(s1[i-1]==s2[j-1])
                lcs[i][j]=lcs[i-1][j-1]+1;
                else
                lcs[i][j]=max(lcs[i-1][j],lcs[i][j-1]);
            }
            printf("Case #%ld: you can visit at most %lld cities.\n",cs++,lcs[n][m]);
    }
return 0;
}

মঙ্গলবার, ১৭ জানুয়ারী, ২০১৭

UVA 12019 - Doom's Day Algorithm

#include<bits/stdc++.h>
using namespace std;
main()
{

    long ts;
    cin>>ts;
    while(ts--)
    {
        long date,month,k;
        string s[10];
        cin>>month>>date;
        date--;
        if(month==1||month==10)
        {
            s[0]="Saturday";
            s[1]="Sunday";
            s[2]="Monday";
            s[3]="Tuesday";
            s[4]="Wednesday";
            s[5]="Thursday";
            s[6]="Friday";
            k=date%7;
            cout<<s[k]<<endl;
        }
        else if(month==4||month==7)
        {
            s[1]="Saturday";
            s[2]="Sunday";
            s[3]="Monday";
            s[4]="Tuesday";
            s[5]="Wednesday";
            s[6]="Thursday";
            s[0]="Friday";
            k=(date)%7;
            cout<<s[k]<<endl;
        }

       else  if(month==5)
        {
            s[6]="Saturday";
            s[0]="Sunday";
            s[1]="Monday";
            s[2]="Tuesday";
            s[3]="Wednesday";
            s[4]="Thursday";
            s[5]="Friday";
            k=date%7;
            cout<<s[k]<<endl;
        }
        else if(month==8)
        {
            s[5]="Saturday";
            s[6]="Sunday";
            s[0]="Monday";
            s[1]="Tuesday";
            s[2]="Wednesday";
            s[3]="Thursday";
            s[4]="Friday";
            k=date%7;
            cout<<s[k]<<endl;
        }

        else if(month==6)
        {
            s[3]="Saturday";
            s[4]="Sunday";
            s[5]="Monday";
            s[6]="Tuesday";
            s[0]="Wednesday";
            s[1]="Thursday";
            s[2]="Friday";
            k=date%7;
            cout<<s[k]<<endl;
        }

        else if(month==2||month==3||month==11)
        {
            s[4]="Saturday";
            s[5]="Sunday";
            s[6]="Monday";
            s[0]="Tuesday";
            s[1]="Wednesday";
            s[2]="Thursday";
            s[3]="Friday";
            k=date%7;
            cout<<s[k]<<endl;
        }
        else if(month==12||month==9)
        {
            s[2]="Saturday";
            s[3]="Sunday";
            s[4]="Monday";
            s[5]="Tuesday";
            s[6]="Wednesday";
            s[0]="Thursday";
            s[1]="Friday";
            k=date%7;
            cout<<s[k]<<endl;
        }
    }
}

UVA 11878 - Homework Checker

#include<bits/stdc++.h>
using namespace std;
int main()
{
    long l,g=0,i,j,k;
    while(1)
    {
        string a;
        getline(cin,a);
        l=a.size();
        if(a[0]=='\0')
            {
                break;
            }
        long s=0,s1=0,t=0;
        for(i=0;i<l;i++)
        {
            if(a[i]=='=')
            {
                j=i;
            }
            if(a[i]=='+'||a[i]=='-')
            {
                k=i;
            }
        }
        for(i=0;i<k;i++)
        {
            s=s*10+(a[i]-48);
        }
        for(i=k+1;i<j;i++)
        {
            s1=s1*10+(a[i]-48);
        }
        for(i=j+1;i<l;i++)
        {
            t=t*10+(a[i]-48);
        }
        if(a[k]=='+')
        {
            if(t==s+s1)
            {
                g++;
            }
        }
        if(a[k]=='-')
        {
            if(t==(s-s1))
            {
                g++;
            }
        }

    }
printf("%ld\n",g);
    return 0;
}

UVA 10474 - Where is the Marble?

#include<bits/stdc++.h>
using namespace std;
long long ar[100010]={0},ar1[100010]={0};
main()
{
    long long n,m,cs=1;
    while(cin>>n>>m)
    {
        long long flag=0,publicad,i,j;
        if(n==0&&m==0)
            break;
        else
        {
            for(i=0;i<n;i++)
            {
                cin>>ar[i];
            }
            for(i=0;i<m;i++)
            {
                cin>>ar1[i];
            }
            sort(ar,ar+n);
            printf("CASE# %lld:\n",cs++);
            for(i=0;i<m;i++)
            {
                flag=0;
                for(j=0;j<n;j++)
                {
                    if(ar1[i]==ar[j]&&flag==0)
                    {
                        printf("%lld found at %lld\n",ar1[i],j+1);
                        flag=1;
                    }
                }
                if(flag==0)
                printf("%lld not found\n",ar1[i]);
            }
        }
    }
}

UVA 486 - English-Number Translator

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string a;
    while(getline(cin,a))
    {
        char b[10000][15]={0};
        long long l=0,i=0,s=0,j=0,k=0,v=0,p=0,x=0,c[1000]={0};
        l=a.size();
        for(i=0;i<l;i++)
        {
            if(isalpha(a[i]))
            b[j][k++]=a[i];
            else
            {
                j++;k=0;
            }
        }
        for(i=0;i<=j;i++)
        {
            if(strcmp(b[i],"zero")==0)s=s+0;
            else if(strcmp(b[i],"one")==0)s=s+1;
            else if(strcmp(b[i],"two")==0)s=s+2;
            else if(strcmp(b[i],"three")==0)s=s+3;
            else if(strcmp(b[i],"four")==0)s=s+4;
            else if(strcmp(b[i],"five")==0)s=s+5;
            else if(strcmp(b[i],"six")==0)s=s+6;
            else if(strcmp(b[i],"seven")==0)s=s+7;
            else if(strcmp(b[i],"eight")==0)s=s+8;
            else if(strcmp(b[i],"nine")==0)s=s+9;
            else if(strcmp(b[i],"ten")==0)s=s+10;
            else if(strcmp(b[i],"eleven")==0)s=s+11;
            else if(strcmp(b[i],"twelve")==0)s=s+12;
            else if(strcmp(b[i],"thirteen")==0)s=s+13;
            else if(strcmp(b[i],"fourteen")==0)s=s+14;
            else if(strcmp(b[i],"fifteen")==0)s=s+15;
            else if(strcmp(b[i],"sixteen")==0)s=s+16;
            else if(strcmp(b[i],"seventeen")==0)s=s+17;
            else if(strcmp(b[i],"eighteen")==0)s=s+18;
            else if(strcmp(b[i],"nineteen")==0)s=s+19;
            else if(strcmp(b[i],"twenty")==0)s=s+20;
            else if(strcmp(b[i],"thirty")==0)s=s+30;
            else if(strcmp(b[i],"forty")==0)s=s+40;
            else if(strcmp(b[i],"fifty")==0)s=s+50;
            else if(strcmp(b[i],"sixty")==0)s=s+60;
            else if(strcmp(b[i],"seventy")==0)s=s+70;
            else if(strcmp(b[i],"eighty")==0)s=s+80;
            else if(strcmp(b[i],"ninety")==0)s=s+90;
            else if(strcmp(b[i],"hundred")==0)s=s*100;
            else if(strcmp(b[i],"thousand")==0)
            {
                s=s*1000;
                c[p++]=s;
                s=0;
            }
            else if(strcmp(b[i],"million")==0)
            {
                s=s*1000000;
                c[p++]=s;
                s=0;
            }
            else if(strcmp(b[i],"negative")==0)
            printf("-");
        }
        for(i=0;i<p;i++)
        s=s+c[i];
        printf("%lld\n",s);
    }
    return 0;
}

সোমবার, ১৬ জানুয়ারী, ২০১৭

Uva:11278:ONE-HANDED TYPIST

#include<stdio.h>
#include<string.h>
#include<bits/stdc++.h>
using namespace std;
main()
{
    char fst[]="`1234567890-=qwertyuiop[]\\asdfghjkl;'zxcvbnm,./";
    char fst1[]="`123qjlmfp/[]456.orsuyb;=\\789aehtdck-0zx,inwvg'";
    char scnd[]="~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:\"ZXCVBNM<>?";
    char scnd1[]="~!@#QJLMFP?{}$%^>ORSUYB:+|&*(AEHTDCK_)ZX<INWVG\"";
    char s[100000]={0};
    while(gets(s))
    {
        long j,l=strlen(s),flag=0;
        long i,l1=strlen(fst);
        for(i=0;i<l;i++)
        {
            flag=0;
            for(j=0;j<l1;j++)
            {
                if(s[i]==fst[j])
                {
                    flag=1;
                    cout<<fst1[j];
                    break;
                }
                if(s[i]==scnd[j])
                {
                    flag=1;
                    cout<<scnd1[j];
                    break;
                }
            }
            if(flag==0)
            {
                cout<<s[i];
            }
        }
        cout<<endl;
    }
}

Substring code in cpp

#include<stdio.h>
#include<string.h>
#include<bits/stdc++.h>
using namespace std;
main()
{
    long ts;
    cin>>ts;
    while(ts--)
    {
        string s2,s1;
        cin>>s1;
        long l2,l1,i,cnt=0,i1,flag=0,k,i2;
        l1=s1.size();
        cin>>s2;
        l2=s2.size();
        for(i1=0;i1<l1;i1++)
            {
                cnt=0;
                if(s1[i1]==s2[0])
                {
                    flag=1;
                    k=i1+1;
                    for(i2=1;i2<l2;i2++)
                    {
                        if(s1[k++]==s2[i2])
                        {
                            cnt++;
                        }
                        else
                            break;
                    }
                    goto check;
                }
            }
                check:
                    if(flag==1)
                    {
                        if(cnt==(l2-1))
                            {
                                cout<<"yes"<<endl;
                             }
                        else
                           cout<<"no"<<endl;
                    }
                    else
                        cout<<"no"<<endl;
    }
}

UVA 10679 I Love Strings!!!

#include<stdio.h>
#include<string.h>
#include<bits/stdc++.h>
using namespace std;
main()
{
    long ts;
    cin>>ts;
    while(ts--)
    {
        string s2,s1;
        cin>>s1;
        long l2,l1,i,cnt=0,i1,flag=0,k,i2;
        long n;
        l1=s1.size();
        cin>>n;
        for(i=1;i<=n;i++)
        {
            cin>>s2;
            l2=s2.size();
            for(i1=0;i1<l1;i1++)
            {
                cnt=0;
                if(s1[i1]==s2[0])
                {
                    flag=1;
                    k=i1+1;
                    for(i2=1;i2<l2;i2++)
                    {
                        if(s1[k++]==s2[i2])
                        {
                            cnt++;
                        }
                        else
                            break;
                    }
                    goto check;
                }
            }
                check:
                    if(flag==1)
                    {
                        if(cnt==(l2-1))
                            {
                                cout<<"y"<<endl;
                             }
                        else
                           cout<<"n"<<endl;
                    }
                    else
                        cout<<"n"<<endl;
        }
    }
}

UVA 10004 Bicoluring

#include<stdio.h>
#include<bits/stdc++.h>
#define mx 100000
using namespace std;
long  vis[10000]={-1};
main()
{
    long long ts;
    while(cin>>ts)
    {
        vector<long>vec[100000];
        queue<long>qu;
        memset(vis,-1,sizeof(vis));
        long n,x,y,i,u,v,len;
        if(ts==0)
            break;
        cin>>n;
        for(i=0;i<n;i++)
        {
            cin>>x>>y;
            vec[x].push_back(y);
            vec[y].push_back(x);
        }
        long flag=0;
        vis[0]=0;
        qu.push(0);
        while(!qu.empty())
        {
            u=qu.front();
            qu.pop();
            len=vec[u].size();
            for(i=0;i<len;i++)
            {
                v=vec[u][i];
                if(vis[v]==-1)
                {
                    if(vis[u]==0)
                        vis[v]=1;
                    else
                        vis[v]=0;
                    qu.push(v);
                }
                else
                {
                    if(vis[v]==vis[u])
                    {
                        flag=1;
                        break;
                    }
                }
            }
            if(flag==1)
                break;
        }
        if(flag==0)
            cout<<"BICOLORABLE."<<endl;
        else
            cout<<"NOT BICOLORABLE."<<endl;
    }
}

শুক্রবার, ১৩ জানুয়ারী, ২০১৭

UVA 11728 - Alternate Task

#include<bits/stdc++.h>
using namespace std;
main()
{
      long i,j,ar[1005]={0},tst,mx=0,vis[5000]={0},vis1[5000]={0};
      for(i=1;i<=1000;i++)
      {
            for(j=i;j<=1000;j+=i)
            {
                  ar[j]+=i;
            }
      }
      long long n,cs=1;
      while(cin>>n)
      {
          long long flag=0;
          if(n==0)
            break;
          for(i=n;i>=1;i--)
          {
              if(n==ar[i])
              {
                  flag=1;
                  break;
              }
          }
          printf("Case %lld: ",cs++);
          if(flag==1)
          {
              cout<<i<<endl;
          }
          else
            cout<<-1<<endl;
      }
}

UVA 11824 - A Minimum Land Price

#include<bits/stdc++.h>
using namespace std;
main()
{
    long long n,a,ar[100010]={0},pow1=0,i,cnt=0,k=0,sum=0;
    cin>>n;
    while(1)
    {

        cin>>a;
        if(a==0)
        {
            cnt++;
            pow1=1;
            sum=0;
            sort(ar,ar+k);
            for(i=k-1;i>=0;i--)
            {
                sum=sum+ 2*(pow(ar[i],pow1)+.000000000001);
                pow1++;
            }
            memset(ar,0,sizeof(ar));
            k=0;
            if(sum>5000000)
                printf("Too expensive\n");
            else
                printf("%lld\n",sum);
            sum=0;
        }
        else
        {
            ar[k++]=a;
        }
        if(cnt==n)
            break;
    }
}

UVA 12554 - A Special "Happy Birthday" Song!!!

#include<bits/stdc++.h>
using namespace std;
main()
{
    map<long ,string>mp,mp1;
    mp[0]="Happy";mp[1]="birthday";mp[2]="to";mp[3]="you";
    mp[4]="Happy";mp[5]="birthday";mp[6]="to";mp[7]="you";
    mp[8]="Happy";mp[9]="birthday";mp[10]="to";mp[11]="Rujia";
    mp[12]="Happy";mp[13]="birthday";mp[14]="to";mp[15]="you";
    long n;
    while(cin>>n)
    {
        long i,i1,a=0,b=0;
        string s;
        for(i=1;i<=n;i++)
        {
            cin>>s;
            mp1[i]=s;
        }
        i=1,i1=0;
        while(1)
        {

            cout<<mp1[i]<<": "<<mp[i1]<<endl;
            if(i==n)
            {
                a=1;
                i=0;
            }
            if(i1==15)
            {
                b=1;
                i1=-1;
            }
            else b=0;
            if(b==1&&a==1)
                break;
                i++;i1++;
        }
    }
}

UVA 11089 - Fi-binary Number

#include<stdio.h>
int main()
{
int F[45] = {1,2}, T, N, i;
for(i = 2; i < 45; i++)
F[i] = F[i-1] + F[i-2];
scanf("%d", &T);
while(T--)
        {
scanf("%d", &N);
i = 44;
while(F[i] > N) i--;
for(; i >= 0; i--)
            {
if(F[i] <= N)
printf("1"), N -= F[i];
else
printf("0");
  }
puts("");
  }
    return 0;
}

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
    int t;
    long long int x, k, a, b, p, q;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%lld%lld",&x,&k);
        a=floor((double)x/k);//cout<<a<<endl;
        b=ceil((double)x/k);
        for(p=0;p*a<=x;p++)
        if((x-p*a)%b == 0)
        {
            q=(x-p*a)/b;
            break;
        }
        printf("%lld %lld\n",p,q);
    }
    return 0;
}

UVA 993 Product of digits

#include<bits/stdc++.h>
using namespace std;
main()
{
    long ts;
    cin>>ts;
    while(ts--)
    {
        long long n,i,n1,flag=0;
        string s;
        cin>>n;
        if(n<=9)
            cout<<n<<endl;
        else
        {
        while(n>=10)
        {
            for(i=9;i>=2;i--)
            {

                if(n%i==0)
                {
                    n1=n/i;
                    s+=char(i+48);
                    n=n1;
                    flag=1;
                }
            }
            if(flag==0)
                break;
                flag=0;
        }
        sort(s.begin(),s.end());
        if(n>9)
            cout<<-1<<endl;
        else
        cout<<s<<endl;
        }
    }
}

UVA 10683 - The decadary watch

#include<bits/stdc++.h>
using namespace std;
main()
{
    string s;
    while(cin>>s)
    {
        long long hr,mn,ans=0,rslt,sc,cc;
        hr=(s[0]-48)*10+(s[1]-48);
        mn=(s[2]-48)*10+(s[3]-48);
        sc=(s[4]-48)*10+(s[5]-48);
        cc=(s[6]-48)*10+(s[7]-48);
        ans=ans+hr*60*60*100;
        ans=ans+mn*60*100;
        ans=ans+sc*100;
        ans=ans+cc;
        rslt=(ans*10000000)/8640000;
    //In the normal system a day consists of 24 hrs.24hrs = 24 * 60 * 60 * 100 = 8640000 hs
    //in the decimal system a day consists of 10 dhrs.10 dhrs = 10 * 100 * 100 * 100 = 10000000 ds
         printf("%07lld\n", rslt);
    }
}

বৃহস্পতিবার, ১২ জানুয়ারী, ২০১৭

UVA 11173 - Grey Codes

#include<bits/stdc++.h>
using namespace std;
main()
{
    long long ts;
    cin>>ts;
    while(ts--)
    {
        long long a,b,k,k1;
        cin>>a>>b;
        a = b ^ (b >> 1);
        cout<<a<<endl;
    }
}

UVA 264 - Count on Cantor

#include<bits/stdc++.h>
using namespace std;
main()
{
    long long n;
    while(cin>>n)
    {
        long long n1=n,i;
        for(i=1;i<=n;i++)
        {
            if(i>=n)
                break;
            n=n-i;
        }
        if(i%2==1)
        {
            printf("TERM %lld IS %lld/%lld\n",n1,i+1-n,n);
        }
        else
            printf("TERM %lld IS %lld/%lld\n",n1,n,i+1-n);
    }
}

UVA 11161 - Help My Brother (II)

/* I SHALL COPY PASTE ANY PART OF MY CODE BUT SHALL REVISE && REVISE */
          /* I SHALL WRITE IT DOWN BEFORE WRITTING IT */
#include<bits/stdc++.h>
#include<cstring>
using namespace std;

#define nl printf("\n")
#define P(a) printf("%lld\n",a)
#define SP(a) printf("%lld ",a)
#define G(a) scanf("%lld",&a)
#define DB printf("I WAS HERE\n")
#define M 1505
long long fib[1550][500],i,j,k,carry,x,sz[1550];
long long last[1550][500],szlast[1550];
void bigfibo()
{
    fib[0][0]=0;
    fib[1][0]=1;
    fib[2][0]=2;
    sz[0]=1;
    sz[1]=1;
    sz[2]=1;
    long long l,i,j;
    i=3;
    while(i<=M)
        {
             carry=0;
            l=sz[i-1];
            j=0;
            while(j<l)
            {
                x=fib[i-1][j]+fib[i-2][j]+carry;
                if(x>9)
                {
                    x=x%10;
                    carry=1;
                }
                else carry=0;
                fib[i][j]=x;

                j++;

            }
            if(carry>0)
            {
                fib[i][j]=carry;
                carry=0;
                j++;
            }
            sz[i]=j;
           i++;
        }
}
void lastfibono()
{
    last[1][0]=1;
    last[2][0]=3;
    last[3][0]=6;
    szlast[1]=1;
    szlast[2]=1;
    szlast[3]=1;
    long long l,i,j,carry=0,x,val;
    i=4;

    while(i<=M)
    {
        carry=0;
        val=0;
        j=0;
        l=max(szlast[i-1],sz[i]);

        while(j<l)
        {
            val=last[i-1][j]+fib[i][j]+carry;

            if(val>9)
            {
            carry=1;
            val=val%10;
            }
            else
                carry=0;
                last[i][j]=val;

            j++;
        }
            if(carry>0)
            {
                last[i][j]=carry;
                carry=0;
                j++;
            }
            szlast[i]=j;
            i++;
    }
}
main()
{
   bigfibo();
   lastfibono();
   long long int n,tc=1;
   while(cin>>n)
   {
       if(n==0) break;
       if(n==1)
       {
           printf("Set %lld:\n",tc);
           tc++;
           printf("0\n");
           continue;
       }
       n--;
       long long div[500]={0},a[500]={0},szdiv=0,l=0,k1=0;

       long long p=n;
           l=sz[p];
           if(fib[p][0]%2==1)
           {
               j=0;
               carry=1;
               while(j<l)
               {
                   x=fib[p][j]+carry;
                   if(x>9)
                   {
                       carry=1;
                       x=x%10;
                   }
                   else carry=0;

                   a[j]=x;
                   j++;
               }
               if(carry>0)
               {
                   a[j]=carry;
                   carry=0;
                   j++;
               }
               carry=0;
               k1=0;
               for(k=j-1;k>=0;k--)
               {
                   a[k]+=(carry*10);
                   if(a[k]>=2)
                   {
                       x=a[k]/2;
                       carry=a[k]%2;
                       div[k1]=x;
                       k1++;

                   }
                   else if(k1>0)
                   {
                       div[k1]=0;carry=a[k];
                       //SP(div[k1]);
                       k1++;
                   }
                   else
                    carry=a[k];

               }
               szdiv=k1;
           }
           else
           {
               carry=0;
               k1=0;
               for(k=l-1;k>=0;k--)
               {
                   a[k]=fib[p][k];
               }
               for(k=l-1;k>=0;k--)
               {
                   a[k]+=(carry*10);
                   if(a[k]>=2)
                   {
                       x=a[k]/2;
                       carry=a[k]%2;
                       div[k1]=x;
                       k1++;
                   }
                else if(k1>0)
                   {
                       div[k1]=0;carry=a[k];
                       k1++;
                   }
                   else
                    carry=a[k];
               }
               szdiv=k1;
           }
            long long k2=0;
            long long sum[500]={0};
           for(i=szdiv-1;i>=0;i--)
           {
               sum[k2]=div[i];k2++;
           }
       long long x,ii=max(szlast[n-1],szdiv),output[500]={0};
       j=0;
       carry=0;
        while(j<ii)
            {
                x=last[n-1][j]+sum[j]+carry;
                if(x>9)
                {
                    x=x%10;
                    carry=1;
                }
                else
                    carry=0;
                output[j]=x;
                j++;
            }
            if(carry>0)
            {
                output[j]=carry;
                carry=0;
                j++;
            }
            printf("Set %lld:\n",tc);
           tc++;
            for(i=j-1;i>=0;i--)
            {
                printf("%lld",output[i]);
            }
            nl;
   }

}

মঙ্গলবার, ১০ জানুয়ারী, ২০১৭

UVA 11344 The Huge One

#include<bits/stdc++.h>
using namespace std;
main()
{
    long ts;
    cin>>ts;
    while(ts--)
    {
        string s;
        long long k,n,i,sum=0,cnt=0,i1;
        cin>>s;
        cin>>n;
        for(i=1;i<=n;i++)
        {
            cin>>k;
            sum=0;
            for(i1=0;i1<s.size();i1++)
            {
                sum=sum*10+s[i1]-48;
                sum=sum%k;
            }
            if(sum==0)
            {
                cnt++;
            }
        }
        if(cnt==n)
        {
            cout<<s;
           printf(" - Wonderful.\n");
        }
        else
        {
            cout<<s;
            printf(" - Simple.\n");
        }
    }
}

Factory Pattern

Factory Method  is a creational design pattern that provides an interface for creating objects in a superclass but allows subclasses to alte...