QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#135634 | #4519. Rotating Display / Barbara's Robot | itshawn | AC ✓ | 29ms | 7532kb | C++14 | 3.9kb | 2023-08-05 19:54:16 | 2023-08-05 19:54:20 |
Judging History
answer
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int n,a[101][101],c[101][101],k,ops[1000001],op;
int up[10][10] = {
// 0 1 2 3 4 5 6 7
// e - / < > \ | <<
/* 0 e */ { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 },
/* 1 - */ { 1 , 0 , 3 , 2 , 5 , 4 , 7 , 6 },
/* 2 / */ { 2 , 4 , 0 , 6 , 1 , 7 , 3 , 5 },
/* 3 < */ { 3 , 5 , 1 , 7 , 0 , 6 , 2 , 4 },
/* 4 > */ { 4 , 2 , 6 , 0 , 7 , 1 , 5 , 3 }, //
/* 5 \ */ { 5 , 3 , 7 , 1 , 6 , 0 , 4 , 2 },
/* 6 | */ { 6 , 7 , 4 , 5 , 2 , 3 , 0 , 1 },
/* 7 <<*/ { 7 , 6 , 5 , 4 , 3 , 2 , 1 , 0 }};
int chan[11][11] = {
// e - / < > \ | <<
/* 0 e */ { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 },
/* 1 - */ { 1 , 1 , 6 , 6 , 6 , 6 , 1 , 1 },
/* 2 / */ { 2 , 5 , 2 , 5 , 5 , 2 , 5 , 2 },
/* 3 < */ { 3 , 3 , 9 , 9 , 7 , 7 , 4 , 4 },
/* 4 > */ { 4 , 4 , 7 , 7 , 9 , 9 , 3 , 3 },
/* 5 \ */ { 5 , 2 , 5 , 2 , 2 , 5 , 2 , 5 },
/* 6 | */ { 6 , 6 , 1 , 1 , 1 , 1 , 6 , 6 },
/* 7 ^ */ { 7 , 9 , 4 , 3 , 4 , 3 , 7 , 9 },
/* 8 o */ { 8 , 8 , 8 , 8 , 8 , 8 , 8 , 8 },
/* 9 v */ { 9 , 7 , 3 , 4 , 3 , 4 , 9 , 7 },
/*10 x */ { 10, 10, 10, 10, 10, 10, 10, 10}};
char back[11] = {' ','-','/','<','>','\\','|','^','o','v','x'};
string s;
inline int type(int x)
{
switch(x)
{
case '-': return 1;
case '/': return 2;
case '<': return 3;
case '>': return 4;
case '\\': return 5;
case '|': return 6;
case '^': return 7;
case 'o': return 8;
case 'v': return 9;
case 'x': return 10;
default:
return 0;
}
return 0;
}
void case0() // e
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
c[i][j] = chan[a[i][j]][0];
return ;
}
void case1() // -
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
c[n-i+1][j] = chan[a[i][j]][1];
return ;
}
void case2() // /
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
c[n-j+1][n-i+1] = chan[a[i][j]][2];
return ;
}
void case3() // <
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
c[n-j+1][i] = chan[a[i][j]][3];
return ;
}
void case4() // >
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
c[j][n-i+1] = chan[a[i][j]][4];
return ;
}
void case5() // \ .
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
c[j][i] = chan[a[i][j]][5];
return ;
}
void case6() // |
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
c[i][n-j+1] = chan[a[i][j]][6];
return ;
}
void case7() // <<
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
c[n-i+1][n-j+1] = chan[a[i][j]][7];
return ;
}
void change(int x)
{
switch(x)
{
case 0: return case0();
case 1: return case1();
case 2: return case2();
case 3: return case3();
case 4: return case4();
case 5: return case5();
case 6: return case6();
case 7: return case7();
default:
return ;
}
return ;
}
int main()
{
// n = 3;
// a[1][1] = 1,a[1][2] = 2,a[1][3] = 3;
// a[2][1] = 4,a[2][2] = 5,a[2][3] = 6;
// a[3][1] = 7,a[3][2] = 8,a[3][3] = 9;
//
// for(int i=1;i<=n;i++)
// {
// for(int j=1;j<=n;j++)
// printf("%d",a[i][j]);
// puts("");
// } puts("");
//
// change(z);
//
// for(int i=1;i<=n;i++)
// {
// for(int j=1;j<=n;j++)
// printf("%d",c[i][j]);
// puts("");
// }
//
// return 0;
while(scanf("%d",&n)!=EOF)
{
getline(cin,s);
for(int i=1;i<=n;i++)
{
getline(cin,s);
for(int j=0;j<s.size();j++)
a[i][j+1] = type(s[j]);
}
getline(cin,s);
k = 0;
for(int i=0;i<s.size();i+=2)
ops[i/2+1] = type(s[i]),k++;
op = 0;
// printf(" 0 ");
for(int i=1;i<=k;i++)
// printf("add %d > %d ",ops[i],up[op][ops[i]]),
op = up[op][ops[i]];
// puts("");
change(op);
// printf("%d\n",op);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
printf("%c",back[c[i][j]]);
puts("");
}
}
return 0;
}
/*
5
o</<^
/<>v/
\->|<
v^v/^
-/>>v
< \ / / / \ | \ | > < > < > | / - > < / / - | \ / | | / > \ - < | / <
3
*/
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 29ms
memory: 7532kb
input:
4 >vv< -/</ ^/^v /xx/ / < - > < < < < < | < > > / | \ / < - > / < < / < - \ > > \ | / / - | | / / | - | | > | 5 o</<^ /<>v/ \->|< v^v/^ -/>>v < \ / / / \ | \ | > < > < > | / - > < / / - | \ / | | / > \ - < | / < 6 x/^\o/ <^xv-x \><||v </o\-< ^vx>\o |x<<\/ > / / / > < / - | > \ \ < \ > > - < | - \ \ ...
output:
>vv< -/</ ^/^v /xx/ <\v<> v>-\^ \^^>^ vv|<\ o\/>| x^\^<- /<v/>x <x^ox^ \>-\v^ o|-|\\ /x>^o/ > | />- <v- /\x /o^v\ /xo>v >x/|| x<-/< -v--x <xvx/ov^>o x><\-x\-vx >^o/>\o\o> ^<<>\/<>xo |vo\/xv/<x v|vov<v-^v >-o<-^x|\> <>v/o-^o/x <^|/-\||x/ \^>-xx><\/ oo>\v> /|xo\| ov|^|- v>vxx< >-^/-v \x<v|^ v|/o-/ ox|...
result:
ok 404 lines