QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#185854#3102. Navigation 2sjc061031#0 2ms3844kbC++202.0kb2023-09-22 17:45:152024-07-04 02:07:52

Judging History

This is the latest submission verdict.

  • [2024-07-04 02:07:52]
  • Judged
  • Verdict: 0
  • Time: 2ms
  • Memory: 3844kb
  • [2023-09-22 17:45:15]
  • Submitted

Anna

#include "Anna.h"
#include <bits/stdc++.h>
using namespace std;

namespace{
	int n,k,d[110][110],e[110][110];
	int _U=3,_D=2,_L=1,_R=0;
}

inline int calc(int x,int y,int nx,int ny)
{
	if(nx<x-1) return _U+2;
	if(nx>x+1) return _D+2;
	if(ny<y-1) return _L+2;
	if(ny>y+1) return _R+2;
	return 6+(nx-x+1)*3+(ny-y+1);
}

void Anna(int N,int K,vector<int> R,vector<int> C){
	n=N;k=K;
	int tot=100;
	for(int ii=0;ii<3;ii++){
		for(int jj=0;jj<3;jj++){
			int f[3][3];
			for(int i=0;i<3;i++){
				for(int j=0;j<3;j++) f[i][j]=-1;
			}
			f[ii][jj]=7;
			int cnt=0;
			for(int i=0;i<3;i++){
				for(int j=0;j<3;j++) if(f[i][j]==-1){
					if(cnt==7) f[i][j]=8;
					else f[i][j]=cnt,cnt++;
				}
			}
			int mx=0;
			for(int i=0;i<n;i++){
				for(int j=0;j<n;j++){
					int id=f[i%3][j%3];
					if(id==7) d[i][j]=1;
					else if(id==8) d[i][j]=2;
					else{
						d[i][j]=calc(i,j,R[id],C[id]);
					}
					mx=max(mx,d[i][j]);
				}
			}
			if(mx<tot){
				tot=mx;
				for(int i=0;i<n;i++) for(int j=0;j<n;j++) e[i][j]=d[i][j];
			}
		}
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++) SetFlag(i,j,e[i][j]);
	}
}

Bruno

#include "Bruno.h"
#include <bits/stdc++.h>
using namespace std;

namespace{
	int U=3,D=2,L=1,R=0,T=4;
}

vector<int> Bruno(int K,vector<int> v){
	vector<int> res(K);
	int a[3][3],tot=0;
	for(int i=0;i<3;i++) for(int j=0;j<3;j++) a[i][j]=v[tot++];
	int posx=-1,posy=-1;
	for(int i=0;i<3;i++) for(int j=0;j<3;j++){
		if(a[i][j]==1){
			posx=i,posy=j;
		}
	}
	int cnt=0;
	for(int i=0;i<3;i++){
		for(int j=0;j<3;j++){
			if(i==posx&&j==posy) continue;
			if(cnt==7) continue;
			else{
				if(a[i][j]==2) res[cnt]=R;
				else if(a[i][j]==3) res[cnt]=L;
				else if(a[i][j]==4) res[cnt]=D;
				else if(a[i][j]==5) res[cnt]=U;
				else{
					int ox=(a[i][j]-6)/3-1,oy=(a[i][j]-6)%3-1;
					ox+=i-1;oy+=j-1;
					if(ox<0) res[cnt]=U;
					else if(ox>0) res[cnt]=D;
					else if(oy<0) res[cnt]=L;
					else if(oy>0) res[cnt]=R;
					else res[cnt]=T;
				}
				cnt++;
			}
		}
	}
	return res;
}

詳細信息

Test #1:

score: 0
Wrong Answer
time: 2ms
memory: 3844kb

input:

288
7 9 9 1 2 7 9 10 3 9 

output:

3 3 0 3 4 2 1 

input:


output:

Wrong Answer [7]

result:

wrong answer