Rolling table
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2169 Accepted Submission(s): 1051
Problem Description
After the 32nd ACM/ICPC regional contest, Wiskey is beginning to prepare for CET-6. He has an English words table and read it every morning.
One day, Wiskey's chum wants to play a joke on him. He rolling the table, and tell Wiskey how many time he rotated. Rotate 90 degrees clockwise or count-clockwise each time.
The table has n*n grids. Your task is tell Wiskey the final status of the table.
One day, Wiskey's chum wants to play a joke on him. He rolling the table, and tell Wiskey how many time he rotated. Rotate 90 degrees clockwise or count-clockwise each time.
The table has n*n grids. Your task is tell Wiskey the final status of the table.
Input
Each line will contain two number.
The first is postive integer n (0 < n <= 10).
The seconed is signed 32-bit integer m.
if m is postive, it represent rotate clockwise m times, else it represent rotate count-clockwise -m times.
Following n lines. Every line contain n characters.
The first is postive integer n (0 < n <= 10).
The seconed is signed 32-bit integer m.
if m is postive, it represent rotate clockwise m times, else it represent rotate count-clockwise -m times.
Following n lines. Every line contain n characters.
Output
Output the n*n grids of the final status.
Sample Input
3 2 123 456 789 3 -1 123 456 789
Sample Output
987 654 321 369 258 147
绕中心旋转顺时针m*90度。因为没说类型,所以最好定位字符型。
#include<stdio.h>
#include<string.h>
using namespace std;
__int64 i,n,m,j,k,l;
char a[100][100];
int main()
{
while(scanf("%I64d%I64d",&m,&n)!=EOF)
{
while(n<0)
n=n+400000;//+4的话就超时了,+400就能过了,+4000的话能缩到130ms加40000就是31ms了,我加了400000,0ms
n=n%4;
for(i=0;i<m;i++)
scanf("%s",a[i]);
if(n==0)
{
for(i=0;i<m;i++)
{
for(j=0;j<m;j++)
printf("%c",a[i][j]);
printf("\n");
}
}
else if(n==1)
{
for(j=0;j<m;j++)
{
for(i=m-1;i>=0;i--)
printf("%c",a[i][j]);
printf("\n");
}
}
else if(n==2)
{
for(i=m-1;i>=0;i--)
{
for(j=m-1;j>=0;j--)
printf("%c",a[i][j]);
printf("\n");
}
}
else if(n==3)
{
for(j=m-1;j>=0;j--)
{
for(i=0;i<m;i++)
printf("%c",a[i][j]);
printf("\n");
}
}
}
return 0;
}