#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;
}
}
Saturday, 5 May 2012
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;
}
#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;
}
#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;
}
#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;
}
#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;
}
Subscribe to:
Posts (Atom)