Saturday, 5 May 2012

UVa 256 Quirksome Squares Solution

#include<stdio.h>
int main()
{
int n;
while(scanf("%d",&n)==1)
{
if (n==2)
printf("00\n01\n81\n");
else if (n==4)
printf("0000\n0001\n2025\n3025\n9801\n");
else if (n == 6)
printf("000000\n000001\n088209\n494209\n998001\n");
else if (n == 8)
printf("00000000\n00000001\n04941729\n07441984\n24502500\n25502500\n52881984\n60481729\n99980001\n");
else
break;
}
}

UVa 195 Anagram Solution

#include <iostream>
#include<map>
#include<vector>
#include <algorithm>
using namespace std;

int main ()
{
    map<int,char>M;
    int n,i,j,l,d,a[100];
    char c[100];
    string s;
  cin>>n;
  for(i=0;i<n;i++)
  {
      cin>>s;
      l=s.size();
      for(j=0;j<l;j++)
      {
          d=s[j];
          if(d>64 && d<91)
          d=d*2;
          else
          d=131+2*(s[j]-97);
          M[d]=s[j];
          a[j]=d;
      }
      sort(a,a+l);
     

      do {
            for(j=0;j<l;j++)
            cout <<M[a[j]];
            cout<<endl;
        } while ( next_permutation (a,a+l) );
  }
return 0;
}

UVa 138 Street Numbers Solution

#include<iostream>
#include<list>
#include<string>
#include<cstring>
#include<sstream>
#include<cctype>
#include<string.h>
#include<algorithm>
#include<cmath>
#include<stack>
#include<fstream>
#include<cstdlib>
#include<vector>
#include<map>
#include<utility>
#include<iomanip>
#include<queue>
using namespace std;
#define clr(a) memset(a,0,sizeof(a))
#define fill(a,v) memset(a,v,sizeof(a))
#define PB push_back
#define pi acos(-1.0)
#define eps 1e-9


int main()
{
    long long n,x=8,tc=0;
    double n2;
    while(true)
    {
        n2=sqrt((x*x+x)/2);
        n=n2;
        if(n==n2)
        {
            printf("%10lld%10lld\n",n,x);
            tc++;
        }
        if(tc==10)
        break;
        x++;
    }
return 0;
}

UVa 113 Power of Cryptography Solution

#include<stdio.h>
#include<math.h>
int main()
{
double n,p;
double ans;
while(scanf("%lf%lf",&n,&p)==2)
{
ans=pow(p,1/n);
printf("%.0lf\n",ans);
}
return 0;
}

UVa 111 History Grading Solution

#include<iostream>
#include<string>
#include<cstring>
#include<sstream>
#include<cctype>
#include<string.h>
#include<algorithm>
#include<cmath>
#include<stack>
#include<fstream>
#include<cstdlib>
#include<vector>
#include<map>
#include<utility>
#include<iomanip>
#include<queue>
using namespace std;
int n,fix[100],test[100],arr[100][100],i,j,fixf[100],testf[100];
int main()
{
    map<int,int>fix;
    map<int,int>test;
    cin>>n;
    for(i=0;i<n;i++)
        {
            cin>>fixf[i];
            fix[fixf[i]]=i;
        }

    while(cin>>testf[0])
    {
        test[testf[0]]=0;
        for(i=1;i<n;i++)
        {
            cin>>testf[i];
            test[testf[i]]=i;
        }
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++)
            {
                if(fix[i]==test[j])
                arr[i][j]=arr[i-1][j-1]+1;
                else
                arr[i][j]=max(arr[i][j-1],arr[i-1][j]);
            }
        cout<<arr[n][n]<<endl;
        memset(arr,0,sizeof(arr));
    }
return 0;
}