QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#306224#3102. Navigation 2NATURAL60 0ms0kbC++202.7kb2024-01-16 15:40:352024-01-16 15:40:36

Judging History

你现在查看的是最新测评结果

  • [2024-01-16 15:40:36]
  • 评测
  • 测评结果:0
  • 用时:0ms
  • 内存:0kb
  • [2024-01-16 15:40:35]
  • 提交

Anna

#include<bits/stdc++.h>
#include "Anna.h"
using namespace std;
const int dx[7]={0,0,0,1,1,1,2},dy[7]={0,1,2,0,1,2,0};
int id[3][3]={{1,2,3},{4,0,5},{6,7,8}};
int r[10],c[10];
inline int get_pos(int x,int y,int op)
{
    if(abs(x-r[op])>=2||abs(y-c[op])>=2)
    {
        if(x+1<r[op])return 8;//D
        if(x-1>r[op])return 9;//U
        if(y+1<c[op])return 10;//R
        if(y-1>c[op])return 11;//L
    }
    return id[r[op]-x+1][c[op]-y+1];
}
void Anna(int N,int K,vector<int>R,vector<int>C)
{
    int op[3][3],X,Y,sX[10],sY[10],vis[10],tp;
    memset(op,1,sizeof(op));memset(vis,0,sizeof(vis));
    for(int i=0;i<7;++i)op[(R[i]+2-dx[i])%3][(C[i]+2-dy[i])%3]=0;
    for(int i=0;i<=2;++i)for(int j=0;j<=2;++j)if(op[i][j]){X=i,Y=j;break;}
    for(int i=X;i<N;i+=3)for(int j=Y;j<N;j+=3)SetFlag(i,j,12);
    for(int i=0;i<7;++i)
    {
        sX[i]=X-2+dx[i];
        sY[i]=Y-2+dy[i];
        if(sX[i]<0)sX[i]+=3;
        if(sY[i]<0)sY[i]+=3;
        r[i]=R[i],c[i]=C[i];
    }
    for(int op=0;op<7;++op)for(int i=sX[op];i<N;i+=3)for(int j=sY[op];j<N;j+=3)if(abs(i-R[op])<=1&&abs(j-C[op])<=1)vis[get_pos(i,j,op)]=1;
    for(int i=1;i<=8;++i)if(!vis[i]){tp=i;break;}
    for(int i=0;i<=2;++i)for(int j=0;j<=2;++j)id[i][j]-=(id[i][j]>=tp);
    for(int i=X;i<N;i+=3)for(int j=Y-1;j<N;j+=3)if(j>=0)SetFlag(i,j,tp);
    for(int op=0;op<7;++op)for(int i=sX[op];i<N;i+=3)for(int j=sY[op];j<N;j+=3)SetFlag(i,j,get_pos(i,j,op));
	return ;
}

Bruno

#include<bits/stdc++.h>
#include "Bruno.h"
using namespace std;
const int dx[7]={0,0,0,1,1,1,2},dy[7]={0,1,2,0,1,2,0};
inline int get_dir(int x,int y)
{
    if(x<1)return 3;
    if(x>1)return 2;
    if(y<1)return 1;
    if(y>1)return 0;
    return 4;
}
vector<int> Bruno(int K,vector<int>value)
{
	vector<int>ans;ans.resize(7);
    int X,Y,mp[3][3],tp;
    for(int i=0;i<=2;++i)for(int j=0;j<=2;++j)
    {
        mp[i][j]=value[i*3+j];
        if(mp[i][j]==12)X=i,Y=j;
    }
    tp=mp[X][Y==0?2:Y-1];
    for(int i=0;i<=2;++i)for(int j=0;j<=2;++j)mp[i][j]+=(mp[i][j]>=tp);
    for(int i=0,x,y;i<7;++i)
    {
        x=X-2+dx[i],y=Y-2+dy[i];
        if(x<0)x+=3;if(y<0)y+=3;
        if(mp[x][y]==9)ans[i]=2;
        else if(mp[x][y]==10)ans[i]=3;
        else if(mp[x][y]==11)ans[i]=0;
        else if(mp[x][y]==12)ans[i]=1;
        else if(mp[x][y]==1)ans[i]=get_dir(x-1,y-1);
        else if(mp[x][y]==2)ans[i]=get_dir(x-1,y);
        else if(mp[x][y]==3)ans[i]=get_dir(x-1,y+1);
        else if(mp[x][y]==4)ans[i]=get_dir(x,y-1);
        else if(mp[x][y]==5)ans[i]=get_dir(x,y+1);
        else if(mp[x][y]==6)ans[i]=get_dir(x+1,y-1);
        else if(mp[x][y]==7)ans[i]=get_dir(x+1,y);
        else if(mp[x][y]==8)ans[i]=get_dir(x+1,y+1);
    }
	return ans;
}

詳細信息

Test #1:

score: 0
Runtime Error

input:

288
7 7 1 12 3 6 11 9 9 9 

output:

1 2 1 3 3 3 4 

input:


output:

Wrong Answer [2]

result:

wrong answer