Pages

uva solution লেবেলটি সহ পোস্টগুলি দেখানো হচ্ছে৷ সকল পোস্ট দেখান
uva solution লেবেলটি সহ পোস্টগুলি দেখানো হচ্ছে৷ সকল পোস্ট দেখান

শনিবার, ১৫ মার্চ, ২০১৪

df


This is a paragraph

#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    while(1)
    {
    char s[100];
    cin>>s;
    if(s[0]!='-')
        cout<<s<<endl;
    else
    {
        int c,d;
        int len=strlen(s);
        if(len==3&&s[2]=='0')
        {
            cout<<0<<endl;
        }
        else
        {
       c=s[len-1]-48;
       d=s[len-2]-48;
       s[len-2]='\0';
       printf("%s",s);
       if(c>d)
        printf("%d\n",d);
       else printf("%d\n",c);

    }
    }
    }
    return 0;
}

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

Solution code of uva-10067


#include<cstdio>
#include<iostream>
#include<cstring>
#include<vector>
#include<queue>
#include<cmath>
using namespace std;
struct node
{
    int a,b,c,d;
}data,des;
int main()
{
   //freopen("c:\\temp\\in.txt","r",stdin);
  int test_case;
  scanf("%d",&test_case);
     int a_x[]={-1,1,0,0,0,0,0,0};
     int a_y[]={0,0,0,0,0,0,1,-1};
     int a_z[]={0,0,1,-1,0,0,0,0};
     int a_l[]={0,0,0,0,1,-1,0,0};
  while(test_case--)
  {
     cin>>data.a>>data.b>>data.c>>data.d;
     queue<node>q;
     q.push(data);
     int coun[10][10][10][10];
     int  cons[10][10][10][10];
     for(int i=0;i<=9;i++)
        for(int j=0;j<=9;j++)
          for(int k=0;k<=9;k++)
           for(int l=0;l<=9;l++)
     {
         coun[i][j][k][l]=0;
        cons[i][j][k][l]=0;
     }
     coun[data.a][data.b][data.c][data.d]=1;
     cin>>des.a>>des.b>>des.c>>des.d;
     int n;
     scanf("%d",&n);
     while(n--)
     {
        cin>>data.a>>data.b>>data.c>>data.d;
        cons[data.a][data.b][data.c][data.d]=1;
     }
     int found=0;
      node pop=q.front();
        if(des.a==pop.a && des.b==pop.b && des.c==pop.c && des.d==pop.d)
            found=1;
     while(!q.empty() && !found)
     {
//         cout<<"p"<<endl;
         node pop=q.front();q.pop();
         for(int i=0;i<8;i++)
         {
             data.a=(pop.a+a_x[i])%10;
             if(data.a==-1)data.a=9;
             data.b=(pop.b+a_y[i])%10;
               if(data.b==-1)data.b=9;
             data.c=(pop.c+a_z[i])%10;
               if(data.c==-1)data.c=9;
             data.d=(pop.d+a_l[i])%10;
               if(data.d==-1)data.d=9;
             //cout<< data.a<<" "<<data.b<<" "<<data.c<<" "<<data.d<<endl;
             if(coun[data.a][data.b][data.c][data.d]==0 && cons[data.a][data.b][data.c][data.d]==0)
             {
                 coun[data.a][data.b][data.c][data.d]=coun[pop.a][pop.b][pop.c][pop.d]+1;
                         if(data.a==des.a && data.b==des.b && data.c==des.c && data.d==des.d)
                {
              found=1;break;
                     }
                 q.push(data);
             }
         }
     }
     if(found)
        cout<<coun[des.a][des.b][des.c][des.d]-1;
     else cout<<-1;
     cout<<endl;
  }
  return 0;
}

রবিবার, ৫ জানুয়ারি, ২০১৪

solution code of uva 10044

 #include <vector>
#include <string>
#include <sstream>
#include <stdio.h>      /* printf */
#include <stdlib.h>     /* abs */
#include <cmath>
#include <map>
#include <queue>
#include <functional>
#include <sstream>
#include <vector>
#include<algorithm>
#include<iostream>
using namespace std;
map<string,int>ErdosNumbers;
vector<string> extract_names(string &line)
{
    vector<string>list;
    string::size_type begin(0);
    string::size_type end=line.find(".,",begin);
    while(end!=string::npos)
    {
        list.push_back(line.substr(begin,end-begin+1));
        begin=end+3;
        end=line.find(".,",begin);
    }
    if(begin<line.size()-1)
        list.push_back(line.substr(begin));
    return list;
}
int main()
{
    //freopen("c:\\temp\\in.txt","r",stdin);
    int scenario;
    scanf("%d",&scenario);
    for(int sc=1;sc<=scenario;sc++)
    {
       int p,n;
       scanf("%d %d",&p,&n);
        cin.ignore();
        vector<string>authors;
        map<string,vector<string> >CoAuthors;
        for(int i=0;i<p;i++)
        {
           string data,names;
           getline(cin,data);
           stringstream ss(data);
           getline(ss,names,':');
           authors=extract_names(names);
           for(int i=0;i<authors.size();i++)
            ErdosNumbers[authors[i]]=-1;
           for(int i=0;i<authors.size();i++)
           {
               for(int j=0;j<authors.size();j++)
               {
                   if(authors[i]!=authors[j])
                   {
                        if(find(CoAuthors[authors[i]].begin(),CoAuthors[authors[i]].end(),authors[j]) == CoAuthors[authors[i]].end())
                           CoAuthors[authors[i]].push_back(authors[j]);
                   }
               }
           }
        }
        vector<string>find_name;
        string name;
        for(int i=0;i<n;i++)
        {
            getline(cin,name);
            find_name.push_back(name);
        }
        ErdosNumbers["Erdos, P."]=0;
        for(int i=0;i<CoAuthors["Erdos, P."].size();i++)
         ErdosNumbers[CoAuthors["Erdos, P."][i]]=1;
      vector<string>pre_l;
      pre_l=CoAuthors["Erdos, P."];
      while(!pre_l.empty())
      {
          vector<string>new_l;
          for(int i=0;i<pre_l.size();i++)
          {
               for(int j=0;j<CoAuthors[pre_l[i]].size();j++)
               {
                   if(ErdosNumbers[CoAuthors[pre_l[i]][j]]==-1)
                   {
                      ErdosNumbers[CoAuthors[pre_l[i]][j]]=1+ErdosNumbers[pre_l[i]];
                      new_l.push_back(CoAuthors[pre_l[i]][j]);
                   }
               }
          }
          pre_l=new_l;
      }
//      for(map<string,int>::iterator it=ErdosNumbers.begin();it!=ErdosNumbers.end();it++)
//      {
//          cout<<it->first<<" "<<it->second<<endl;
//      }
        printf("Scenario %d\n",sc);
        for(int i=0;i<n;i++)
        {
            cout<<find_name[i]<<" ";
            map<string,int>::iterator it=ErdosNumbers.find(find_name[i]);
            if(it==ErdosNumbers.end() || it->second==-1)
                printf("infinity\n");
             else cout<<it->second<<endl;
        }
    }
    return 0;
}

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

Solution code of uva 928-Eternal truth


#include<cstdio>
#include<iostream>
#include<cstring>
#include<iostream>
#include<queue>
#include<vector>
#include<stack>
#define pa pair<int,int>
#define inf 0x7fffffff
using namespace std;
int row,col,sor_x,sor_y,end_x,end_y;
int main()
{
  // freopen("c:\\temp\\in.txt","r",stdin);
 int test_case;
 scanf("%d",&test_case);
 int a_x[]={-1,1,0,0};
 int a_y[]={0,0,1,-1};
 while(test_case--)
 {
      char data[301][301];
     int visit[301][301][4];
       scanf("%d %d",&row,&col);
     for(int i=1;i<=row;i++)
     {
         for(int j=1;j<=col;j++)
         {
             cin>>data[i][j];
             if(data[i][j]=='S')
                sor_x=i,sor_y=j;
             if(data[i][j]=='E')
                end_x=i,end_y=j;
                visit[i][j][0]=visit[i][j][1]=visit[i][j][2]=visit[i][j][3]=inf;
         }
     }
     queue< pair<pa,int> >my;
     my.push(make_pair(make_pair(sor_x,sor_y),0));
     visit[sor_x][sor_y][0]=0;
     int found=0;
     int p;
     int next_x,next_y;

     while(!my.empty() && !found)
     {
         int r=my.front().first.first;
         int c=my.front().first.second;
         int jump=my.front().second;
           p=jump%3+1;
           my.pop();
         for(int i=0;i<4;i++)
         {
             next_x=r+a_x[i]*p;
             next_y=c+a_y[i]*p;
            if(next_x>=1 && next_x<=row && next_y>=1 && next_y<=col && data[next_x][next_y]!='#' && visit[next_x][next_y][p]==inf)
            {
                int check=1;
                for(int t=1;t<=p && check;t++)
                {
                      if(data[r+a_x[i]*t][c+a_y[i]*t]=='#')
                        check=0;
                }
                if(check)
                {
                      visit[next_x][next_y][p]=visit[r][c][jump]+1;
                       my.push(make_pair(make_pair(next_x,next_y),p));
                if(next_x== end_x && next_y==end_y)
                    {
                        found=true;break;
                    }

                }
            }
         }
    }
    if(!found)
        cout<<"NO\n";
    else cout<<visit[next_x][next_y][p]<<endl;
 }
 return 0;
}

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

Solution code of uva 924


 #include<cstdio>
#include<iostream>
#include<cstring>
#include<vector>
#include<queue>
#include<map>
#include<stack>
using namespace std;
int main()
{
    //freopen("c:\\temp\\in.txt","r",stdin);
    int employe;
    while(scanf("%d",&employe)==1)
    {
        vector<int>graph[2501];
        for(int i=0;i<employe;i++)
        {
            int num;
            scanf("%d",&num);
            for(int j=1;j<=num;j++)
            {
               int c;
               cin>>c;
               if(i!=c)
               graph[i].push_back(c);

            }
        }
        int test_case;
        scanf("%d",&test_case);
        while(test_case--)
        {
            int source;
            scanf("%d",&source);
            queue<int>q;
            q.push(source);
            int visit[2501];
            memset(visit,0,sizeof visit);
            int coun[2501];
            memset(coun,0,sizeof visit);
            visit[source]=1;
            int boom_size=0,first_day;
            while(!q.empty())
            {
                int pop=q.front();q.pop();
                for(int i=0;i<graph[pop].size();i++)
                {
                    int v=graph[pop][i];
                     if(visit[v]==0)
                     {
                         visit[v]=visit[pop]+1;
                         q.push(v);
                         coun[visit[v]]=coun[visit[v]]+1;
                         if(boom_size<coun[visit[v]])
                         {
                             boom_size=coun[visit[v]];
                             first_day=visit[v];
                         }
                     }
                }
            }
            if(graph[source].size()<1)
                cout<<0;
            else cout<<boom_size<<" "<<first_day-1;
            cout<<endl;
        }
    }
    return 0;
}

Solution code of uva 762-we ship cheap


#include<cstdio>
#include<iostream>
#include<cstring>
#include<cmath>
#include<queue>
#include<vector>
#include<map>
using namespace std;
string source,destination;
int root[1000001],t,s;
  map<int,string>you;
void finding_path(int node)
{
    if(you[root[node]]!=you[s])
    {
        finding_path(root[node]);
      cout<<you[root[node]]<<" "<<you[node]<<endl;
    }
    else
         cout<<you[root[node]]<<" "<<you[node]<<endl;
}
int main()
{
    //freopen("c:\\temp\\in.txt","r",stdin);
 int links;
 int p=0;
 while(scanf("%d",&links)==1)
  {
      if(p!=0)cout<<endl;p++;
     map<string,int>my;
     string u,v;
     vector<int>graph[110000];
     int j=1;
     for(int i=1;i<=links;i++)
     {
         cin>>u>>v;
        if(my[u]==0)
        {
            my[u]=j;you[j]=u;j++;
        }
        if(my[v]==0)
        {
            my[v]=j;
            you[j]=v;j++;
        }
        graph[my[u]].push_back(my[v]);
        graph[my[v]].push_back(my[u]);
     }

     cin>>source>>destination;
      //cout<<links<<" "<<source<<" "<<destination<<endl;
      queue<int>q;
      q.push(my[source]);
       t=my[destination];
      int visit[100001];memset(visit,0,sizeof visit);
      visit[my[source]]=1;s=my[source];
      int check=0;
      root[t]=0;
      int pop;
      while(!q.empty())
      {
          pop=q.front();q.pop();
          if(pop==t)
             {
                 check=1;break;
             }
         for(int i=0;i<graph[pop].size();i++)
         {
             int v=graph[pop][i];
             if(visit[v]==0)
             {
                 root[v]=pop;
                 q.push(v);visit[v]=1;
             }
         }
      }
      if(check==0 || root[t]==0)
      {
          printf("No route\n");
      }
      else
      {
          if(source!=destination)
         finding_path(my[destination]);
      }

  }
  return 0;
}

Solution code of uva 567-Risk


#include<cstdio>
#include<iostream>
#include<cstring>
#include<queue>
#include<vector>
using namespace std;
int main()
{
    //freopen("c:\\temp\\in.txt","r",stdin);
    vector<int>graph[21];
    int i=1;
    int number,t=1;
    while(scanf("%d",&number)==1)
    {
        for(int j=1;j<=number;j++)
        {
            int c;
            scanf("%d",&c);
            graph[i].push_back(c);
            graph[c].push_back(i);
        }
        i++;
        if(i==20)
        {
            int query;i=1;
            scanf("%d",&query);
            printf("Test Set #%d\n",t++);
            for(int j=1;j<=query;j++)
            {
                int source,destination;

                int visit[25];
                memset(visit,0,sizeof visit);
                scanf("%d %d",&source,&destination);
                queue<int>q;
                q.push(source);
                visit[source]=1;
                while(!q.empty())
                {
                    int pop=q.front();q.pop();
                    if(pop==destination)break;
                    for(int k=0;k<graph[pop].size();k++)
                    {
                         int v=graph[pop][k];
                         if(visit[v]==0)
                         {
                             visit[v]=1+visit[pop];
                             q.push(v);
                         }
                    }
                }
             printf("%2d to %2d: %d\n",source,destination,visit[destination]-1);

            }
            printf("\n");
            for(int i=1;i<=20;i++)graph[i].clear();
        }
    }
    return 0;
}

বুধবার, ১ জানুয়ারি, ২০১৪

Solution code of uva 532-Dungeon Master


 #include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<stack>
#include<queue>
#include<vector>
using namespace std;
char data[33][33][33];
int visit[33][33][33];
int L,R,C;
struct node
{
   int l,r,c;
}lis;
queue<node>grid;
int bfs()
{
     int a_x[]={0,0,-1,1,0,0};
      int a_y[]={1,-1,0,0,0,0};
      int leb[]={0,0,0,0,1,-1};
      while(!grid.empty())
      {
          lis=grid.front();grid.pop();
          int p=lis.r; int q=lis.c;int Le=lis.l;
           if(data[Le][p][q]=='E')
            return visit[Le][p][q];
          for(int i=0;i<6;i++)
          {
               int s=a_x[i]+p;
               int d=a_y[i]+q;
               int f=leb[i]+Le;
              if((s>=1 && s<=R) && (d>=1 && d<=C)&& (f>=1 && f<=L) && data[f][s][d]!='#' && visit[f][s][d]==0)
              {
                  visit[f][s][d]=1+visit[Le][p][q];
                  lis.l=f;lis.r=s,lis.c=d;grid.push(lis);
              }
          }
      }
      return -1;
}
int main()
{
   // freopen("c:\\temp\\in.txt","r",stdin);
  while(scanf("%d %d %d",&L,&R,&C)==3)
  {
      if(L==0 && R==0 && C==0)
        return 0;
        int output=-1;
        memset(visit,0,sizeof visit);
      for(int i=1;i<=L;i++)
      {

         for(int j=1;j<=R;j++)
         {
             for(int k=1;k<=C;k++)
             {
                  cin>>data[i][j][k];
             }
         }
      }
      int start=0;
       for(int i=1;i<=L && !start;i++)
      {
         for(int j=1;j<=R && !start;j++)
         {
             for(int k=1;k<=C && !start;k++)
                {
                     if(data[i][j][k]=='S')
                     {
                         visit[i][j][k]=1;
                         lis.l=i;
                         lis.r=j;
                         lis.c=k;start=1;
                         grid.push(lis);
                         output=bfs();break;

                     }
                }
         }
      }
      if(output==-1)
        printf("Trapped!\n");
      else printf("Escaped in %d minute(s).\n",output-1);
     while(!grid.empty())
        grid.pop();
  }
  return 0;
}

fff

...Your html-escaped code goes here...
    
#include
#include
#include
using namespace std;
int main()
{
    int capacity,elements;
    int weight[100],value[1000];
    int dp[1000];///store the maximum value
    printf("How many elements: ");
    cin>>elements;
    printf("Enter the maximum weight: ");
    cin>>capacity;
    printf("Enter the weight and value of each element: \n");
    for(int i=1;i<=elements;i++)
        cin>>weight[i]>>value[i];
    memset(dp,0,sizeof dp);
    for(int i=1;i<=elements;i++)
    {
       for(int j=capacity;j>=weight[i];j--)
       {
          if(dp[j]

মঙ্গলবার, ৩১ ডিসেম্বর, ২০১৩

Text area


রবিবার, ২৯ ডিসেম্বর, ২০১৩

Solution code of uva 429


Problem link:Word transformation

Solution code:


 #include<cstdio>
#include<iostream>
#include<string>
#include<stack>
#include<vector>
#include<cstring>
#include<queue>
#include<map>
using namespace std;
int main()
{
    //freopen("c:\\temp\\in.txt","r",stdin);
 int test_case;
 scanf("%d",&test_case);
  cin.ignore();
  while(test_case--)
  {
    map<string,int>my;
    map<int,string>you;
    string word;
    vector<int>graph[210];
    int i=1;
    while(cin>>word)
    {
       if(word=="*")break;
       my[word]=i++;
       you[i-1]=word;
    }
    for(int j=1;j<i-1;j++)
    {
        string a=you[j];
        int len_1=a.size();
      for(int k=j+1;k<i;k++)
      {
         string b=you[k];
         int len_2=b.size();
         if(len_1==len_2)
         {
             int differ=0;
           for(int m=0;m<len_1&& differ<=1;m++)
           {
              if(a[m]!=b[m])differ++;
           }
           if(differ==1)
           {
               graph[j].push_back(k);
               graph[k].push_back(j);
           }
         }
      }
    }
    cin.ignore();
    string input;
    int sou,des;
     while(getline(cin,input))
     {
         string source,destination;
         if(input.size()==0)break;
         int i;
         for( i=0;input[i]!=' ';i++)
         {
             source=source+input[i];
         }
         i++;
          int j=input.size();
          for(;i<j;i++)
         {
             destination=destination+input[i];
         }
      sou=my[source];des=my[destination];
      int visit[210];
      memset(visit,0,sizeof visit);
      queue<int>q;q.push(sou);
      visit[sou]=1;
      while(!q.empty())
      {
         int pop=q.front();q.pop();
         if(pop==des)
         {
             cout<<input<<" "<<visit[pop]-1<<endl;break;
         }
         for(int j=0;j<graph[pop].size();j++)
         {
             int v=graph[pop][j];
              if(visit[v]==0)
              {
                 visit[v]=1+visit[pop];
                 q.push(v);
              }
         }
      }
     }
        if(test_case!=0)cout<<endl;
  }
  return 0;
}

Solution code of uva 383

Problem link:383(Shipping routes)

Solution code:
           
 #include<cstdio>
#include<iostream>
#include<cstring>
#include<map>
#include<vector>
#include<stack>
#include<queue>
#include<cstdlib>
#include<cmath>
#include<string>
using namespace std;
string source,destination;
vector<int>graph[33];
int calling_bfs(int s,int d)
{
   int visit[35];

    memset(visit,0,sizeof visit);
    queue<int>q;
    q.push(s);
    visit[s]=1;
  while(!q.empty())
  {
     int pop=q.front();q.pop();
     if(pop==d)
        return visit[d];
     for(int i=0;i<graph[pop].size();i++)
     {
        int v=graph[pop][i];
        if(visit[v]==0)
        {
          visit[v]=1+visit[pop];
          q.push(v);
        }
     }
  }
  return 0;
}
int main()
{
    //freopen("c:\\temp\\in.txt","r",stdin);
 int data_set;
 scanf("%d",&data_set);
   printf("SHIPPING ROUTES OUTPUT\n\n");
    for(int i=1;i<=data_set;i++)
    {
        if(i>1)printf("\n");
     int m,n,p;
     scanf("%d %d %d",&m,&n,&p);
      map<string,int>my;
      string node,u,v;
      for(int j=1;j<=m;j++)
      {
       cin>>node;
       my[node]=j;
      }
     for(int k=1;k<=n;k++)
     {
       cin>>u>>v;
       graph[my[u]].push_back(my[v]);
       graph[my[v]].push_back(my[u]);

     }
     int ship_size;

     printf("DATA SET  %d\n\n",i);
     for(int l=1;l<=p;l++)
     {
       scanf("%d",&ship_size);
       cin>>source>>destination;
       if(n==0)
        printf("NO SHIPMENT POSSIBLE\n");
       else
       {
         int legs=calling_bfs(my[source],my[destination]);
         if(legs==0) printf("NO SHIPMENT POSSIBLE\n");
         else printf("$%d\n",(legs-1)*100*ship_size);
       }
     }
      for(int i=1;i<=30;i++)
        graph[i].clear();
    }
    printf("\nEND OF OUTPUT\n");
     return 0;
}

Solution code of uva 417

Problem link:417(Word index)

Solution code:

               #include<cstdio>
#include<iostream>
#include<cstring>
#include<string>
#include<cmath>
#include<cstdlib>
#include<list>
#include<stack>
#include<queue>
#include<vector>
#include<set>
#include<map>
using namespace std;
map<string,int>my;
void pre_generate()
{
 int total=1;
 for(int i=0;i<5;i++)
 {
     string c;
     for(int j=1;j<=26;j++)
     {

         c=c+char(j+96);
         if(i==0)
         {
             my[c]=total++;
         }
        else for(int l=j+1;l<=26;l++)
        {

            c=c+char(l+96);
              if(i==1)
            {
             my[c]=total++;
            }
            else
            for(int m=l+1;m<=26;m++)
            {

                 c=c+char(m+96);
                 if(i==2)
                 {
                     my[c]=total++;
                 }
                 else
                 {
                     for(int n=m+1;n<=26;n++)
                     {

                            c=c+char(n+96);
                            if(i==3)
                                 {
                                my[c]=total++;
                                }
                           else
                           {
                               for(int o=n+1;o<=26;o++)
                               {

                                   c=c+char(o+96);
                                    my[c]=total++;
                                        c.erase(4,c.size());
                               }
                           }
                            c.erase(3,c.size());
                     }
                 }
                 c.erase(2,c.size());
            }
             c.erase(1,c.size());
        }
          c.erase(0,c.size());
     }
 }
}
int main()
{
    //freopen("c:\\temp\\in.txt","r",stdin);
 pre_generate();
 string input;
 while(cin>>input)
 {
     cout<<my[input]<<endl;
 }
}

শনিবার, ২৮ ডিসেম্বর, ২০১৩

solution code of uva 336

problem link: A node too far

 Solution code:

       #include<cstdio>
#include<iostream>
#include<cstring>
#include<vector>
#include<stack>
#include<queue>
#include<stack>
#include<map>
using namespace std;
vector<int>my[100001];
int source,TTL,total;
int calling_bfs()
{
    //cout<<total<<endl;
  queue<int>layer;
  layer.push(source);
  //cout<<source<<endl;
   map<int,int>l;
//   for(int i=1;i<=5;i++)
//    cout<<l[i]<<endl;
     l[source]=1;
     total--;
  while(!layer.empty())
  {
   int v=layer.front();layer.pop();
    for(int i=0;i<my[v].size() && l[v]<=TTL;i++)
    {
       int u=my[v][i];
       if(l[u]==0)
       {
         l[u]=1+l[v];
         layer.push(u);
         total--;
       }
    }
  }
}
int main()
{
   //freopen("c:\\temp\\in.txt","r",stdin);
  int nc;
  int u,v,ca=1;
  while(scanf("%d",&nc)==1 && nc)
  {
      total=0;
      map<int,bool>l;
    for(int i=1;i<=nc;i++)
    {
        scanf("%d %d",&u,&v);
        my[u].push_back(v);
        my[v].push_back(u);
        if(l[u]==0)
        {
             l[u]=1;total++;
        }
        if(l[v]==0)
        {
            l[v]=1;
            total++;
        }
    }
    int c=total;
    while(scanf("%d %d",&source,&TTL)==2)
    {
        if(source==0 && TTL==0)
            break;
           total=c;
         if(TTL==0)
            printf("Case %d: %d nodes not reachable from node %d with TTL = %d.\n",ca++,total-1,source,TTL);
         else
         {
             calling_bfs();
              printf("Case %d: %d nodes not reachable from node %d with TTL = %d.\n",ca++,total,source,TTL);
         }
    }
    for(int i=0;i<=100000;i++)
        my[i].clear();
  }
  return 0;
}

রবিবার, ১৮ আগস্ট, ২০১৩

Solution code of uva 10453(make palindrome)





#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
 int dp[1010][1010];
 char result[1010];
 int ptr=0;
   int mini_character(int i,int j,char data[])
  {
        if(i>j)return 0;
    if(data[i]==data[j])
    {
        dp[i][j]= mini_character(i+1,j-1,data);

    }
    if(dp[i][j]!=-1)
        return dp[i][j];
    else
    {
        dp[i][j]=min(mini_character(i,j-1,data),mini_character(i+1,j,data))+1;
    }
      return dp[i][j];
 }
void create_result(int i,int j,char data[])
  {
      if(i>j)return;
      if(i==j)
      {
         result[ptr++]=data[j];return;
      }
      else if(data[i]==data[j])
      {
          result[ptr++]=data[i];
          create_result(i+1,j-1,data);
          result[ptr++]=data[j];
      }
      else if(dp[i][j-1]<=dp[i+1][j])
      {
          result[ptr++]=data[j];
          create_result(i,j-1,data);
          result[ptr++]=data[j];
      }
      else
      {
          result[ptr++]=data[i];
          create_result(i+1,j,data);
          result[ptr++]=data[i];
      }

  }
int main()
{
    //freopen("c:\\in.txt","r",stdin);
    char data[1010];
    while(gets(data))
    {
          ptr=0;
          memset(dp,-1,sizeof dp);
           int t= mini_character(0,strlen(data)-1,data);
           cout<<dp[0][strlen(data)-1];
           create_result(0,strlen(data)-1,data);
           result[ptr]=0;
            cout<<" "<<result<<endl;
    }
    return 0;
}

সোমবার, ২২ জুলাই, ২০১৩

Solution code of uva 644

#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<cstring>
char bit[10][12];
 int p;
 int result() {
   int i,j;
   for(i=0;i<p-1;i++)
   {
       for(j=i+1;j<p;j++)
        if(!strncmp(bit[i],bit[j],strlen(bit[i])))
        return 0;
   }
   return 1;
}
int main()
{
   int i=0,set=0;
   int len1,len2;p=0;
   while(scanf("%s",bit[p])!=EOF)
   {
       p++;
       char temp[12];
       while(scanf("%s",bit[p]))
       {
           if(strcmp(bit[p],"9")==0)
            break;
            p++;
       }
    for(int i=1;i<=p-1;i++)
 {
    for(int j=0;j<=p-i-1;j++)
    {
        len1=strlen(bit[j]);
        len2=strlen(bit[j+1]);
       if(len1>len2)
       {
         strcpy(temp,bit[j]);
         strcpy(bit[j],bit[j+1]);
         strcpy(bit[j+1],temp);
       }
    }
 }
 if(result())
   printf("Set %d is immediately decodable\n",++set);
  else
   printf("Set %d is not immediately decodable\n",++set);
   p = 0;
   }
    return 0;
}

শনিবার, ২০ জুলাই, ২০১৩

Critical input and output of uva 10323

                  Critical input : 
                                          -1
                                         - 2  
                   Critical output:
                                       Overflow
                                      Underflow
 Explanation:
          
                We know that,
                              1!=1*0!.
            similarly we can write,
                                          0!=0*(-1!);
                                    =>(-1!)=0!/0
                                                =1/0  [As 0!=1]
                                                =infinitive(Overflow).
    Again,
                   -1!=(-1)*(-2!)
                    =>(-2!)=(-1!)/(-1)
                               =(infinitive)/(-1) [As (-1!)=infinitive]
                               = - infinitive(Underflow)

Uva solution code of 10008


Problem link
#include<cstdio>
#include<iostream>
#include<cstring>
#include<vector>
#include<queue>
using namespace std;
int main()
{
    int line;
    scanf("%d",&line);
    getchar();
    int arr[130];
     memset(arr,0,sizeof(arr));
     vector<int>my;
     vector<char>out[130];
     priority_queue<int>ch;
    while(line--)
    {
        char data[10000];
        gets(data);
        for(int i=0;i<strlen(data);i++)
        {
            if((data[i]>='A' && data[i]<='Z') || (data[i]>='a' && data[i]<='z'))
            {
               if((data[i]>='a' && data[i]<='z'))
                data[i]=data[i]-32;
               int a=data[i];
               arr[a]++;
            }
        }
    }
    int visit[10000];
    memset(visit,0,sizeof(visit));
    for(int i=65;i<=90;i++)
    {
       if(arr[i]!=0 && !visit[arr[i]])
       {
           ch.push(arr[i]);
           visit[arr[i]]=1;
       }

    }
    while(!ch.empty())
    {
        int t=ch.top();
        ch.pop();
        my.push_back(t);
         for(int i=65;i<=90;i++)
         {
             if(arr[i]==t)
                out[t].push_back(i);
         }
    }
    for(int i=0;i<my.size();i++)
    {
      int t=my[i];
      for(int j=0;j<out[t].size();j++)
      {
          printf("%c %d\n",out[t][j],t);
      }
    }
    return 0;
}

মঙ্গলবার, ২১ মে, ২০১৩

uva solution where is the marble(10474)

provlem link
critical input:
 8 3
2
2
1
4
5
5
6
6
5
4
output:
CASE# 1:
5 found at 5
4 found at 4
6 found at 6
solution:
#include<cstdio>
#include<iostream>
#define max 10010
using namespace std;
int c=0;
int main()
{
  int number,query,query_number,i,array[max],k;
   while(cin>>number>>query&&(number||query))
   {
      int location=0;
      for(i=1;i<=number;i++)
      {
          scanf("%d",&array[i]);
          for(int j=i-1;j>=1;j--)
          {
              if(array[j]<=array[i])
              {
                  location=j+1;break;
              }
              else location=j;
          }
          if(location!=0 ) /*insertion sort*/
          {
              int temp=array[i];
              for(int j=i-1;j>=location;j--)
              {
                 array[j+1]=array[j];
              }
              array[location]=temp;
          }
      }
        printf("CASE# %d:\n",++c);
      while(query--)
      {
          cin>>query_number;
          int beg,end,mid;
          beg=1;end=number;mid=(beg+end)/2;location=0;
          if(array[mid]==query_number)location=mid;
          while(beg<=end)
          {
              if(array[mid]<query_number)
              {

                   beg=mid+1;if(beg>end)break;
              mid=int(beg+end)/2;
              if(array[mid]==query_number)
               {
                   location=mid;
               }
              }

              else
              {
                   end=mid-1;if(beg>end)break;
                  mid=(beg+end)/2;
                  if(array[mid]==query_number)location=mid;
              }
          }
          if(location) printf("%d found at %d\n",query_number,location);
          else printf("%d not found\n",query_number);
      }
   }
   return 0;
}


মঙ্গলবার, ৩০ এপ্রিল, ২০১৩

uva solution Less prime 10852

provlem link
solution:
#include<cstdio>
#include<cmath>
#include<iostream>
using namespace std;
int main()
{
    int n,x,i,check,test_case;
    cin>>test_case;
    while(test_case--)
    {
        cin>>n;
        for(i=2;i<=n;i++)
        {
            check=1;
            for(int j=2;j<=sqrt(i);j++)
            {
                if(i%j==0)
                {
                    check=0;
                     break;
                }
            }
            if(check==1)
            {
               if(i<=n&&(i*2)>n)
               {
                  printf("%d\n",i);
                  break;
               }
            }
        }
    }
 return 0;
}