QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#555867#9251. Graph ChangingJZYZ#WA 6ms3968kbC++142.2kb2024-09-10 11:19:552024-09-10 11:19:56

Judging History

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

  • [2024-09-10 11:19:56]
  • 评测
  • 测评结果:WA
  • 用时:6ms
  • 内存:3968kb
  • [2024-09-10 11:19:55]
  • 提交

answer

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

typedef long long LL ;
const int N = 1e5+10 ;

int q ;
int t , n , K , x , y ;

int f[50][50] , g[50][50] ;
void pusher()
{
	memset( f , 0x3f , sizeof f ) ;
	for(int j = 1 ; j < n ; j ++ ) {
		f[j][j+1] = f[j+1][j] = 1 ;
		f[j][j] = 0 ;
	}
	f[n][n] = 0 ;
	bool fg = 0 ;
	for(int i = 0 ; i <= t ; i ++ ) {
		fg = 0 ;
		if( i == 0 ) memcpy( g , f , sizeof g ) ;
		else {
			memset( g , 0x3f , sizeof g ) ;
			for(int i = 1 ; i <= n ; i ++ ) {
				for(int j = 1 ; j <= n ; j ++ ) {
					if( f[i][j] >= K ) {
						g[i][j] = 1 ;
					}
				}
				g[i][i] = 0 ;
			}
		}
 		for(int k = 1 ; k <= n ; k ++ ) {
			for(int i = 1 ; i <= n ; i ++ ) {
				for(int j = 1 ; j <= n ; j ++ ) {
					g[i][j] = min( g[i][j] , g[i][k]+g[k][j] ) ;
				} 
			}
		}
		memcpy( f , g , sizeof f ) ;
		for(int i = 1 ; i <= n ; i ++ ) {
			for(int j = 1 ; j <= n ; j ++ ) {
				if( i == j ) continue ;
				if( f[i][j] >= 10 ) {
					f[i][j] = -1 ;
				}
				else fg = 1 ;
			}
		}
		if( !fg ) {
			printf("-1\n") ;
			return ;
		}
	}
	if( f[x][y] <= 10 ) printf("%d\n" , f[x][y] ) ;
	else printf("-1\n") ;
}

int main()
{
	scanf("%d" , &q ) ;
	while( q -- ) {
		scanf("%d%d%d%d%d" , &t , &n , &K , &x , &y ) ;
		if( K == 1 ) {
			if( t == 0 ) printf("%d\n" , abs(x-y) ) ;
			else printf("1\n") ;
			continue ;
		}
		if( K == 2 ) {
			if( n >= 5 ) {
				if( t&1 ) printf("%d\n" , abs(x-y)==1?2:1 ) ;
				else printf("%d\n" , abs(x-y) ) ; 
			}
			else if( n == 4 ) {
				if( t&1 ) {
					if( (x==2&&y==3)||(x==3&&y==2) ) printf("3\n") ;
					else if( abs(x-y) == 1 ) printf("2\n") ;
					else printf("1\n") ;
				}
				else printf("%d\n" , abs(x-y) ) ; 
			}
			else if( n == 3 ) {
				if( t >= 2 ) printf("-1\n") ;
				else if( t == 1 ) printf("%d\n" , (x==2||y==2)?-1:1 ) ;
				else printf("%d\n" , abs(x-y) ) ;
			}
			else {
				printf("%d\n" , t?-1:1 ) ;
			}
			continue ;
		}
		if( n <= 40 ) {
			pusher() ;
			continue ;
		}
		if( K >= 3 ) {
			if( t == 0 ) printf("%d\n" , abs(x-y) ) ;
			else if( t == 1 ) printf("%d\n" , abs(x-y)<K?2:1 ) ;
			else printf("-1\n") ;
			continue ;
		}
	}
	return 0 ;
}

詳細信息

Test #1:

score: 100
Accepted
time: 0ms
memory: 3832kb

input:

5
1 5 3 2 4
1 10 4 2 4
2 10 5 2 4
1 3 2 1 3
1 3 2 1 2

output:

3
2
-1
1
-1

result:

ok 5 lines

Test #2:

score: 0
Accepted
time: 0ms
memory: 3820kb

input:

30
1 2 1 1 2
1 2 2 1 2
1 2 3 1 2
1 2 4 1 2
1 2 5 1 2
1 2 6 1 2
2 2 1 1 2
2 2 2 1 2
2 2 3 1 2
2 2 4 1 2
2 2 5 1 2
2 2 6 1 2
3 2 1 1 2
3 2 2 1 2
3 2 3 1 2
3 2 4 1 2
3 2 5 1 2
3 2 6 1 2
4 2 1 1 2
4 2 2 1 2
4 2 3 1 2
4 2 4 1 2
4 2 5 1 2
4 2 6 1 2
5 2 1 1 2
5 2 2 1 2
5 2 3 1 2
5 2 4 1 2
5 2 5 1 2
5 2 6 1 2

output:

1
-1
-1
-1
-1
-1
1
-1
-1
-1
-1
-1
1
-1
-1
-1
-1
-1
1
-1
-1
-1
-1
-1
1
-1
-1
-1
-1
-1

result:

ok 30 lines

Test #3:

score: 0
Accepted
time: 0ms
memory: 3828kb

input:

90
1 3 1 1 2
1 3 1 1 3
1 3 1 2 3
1 3 2 1 2
1 3 2 1 3
1 3 2 2 3
1 3 3 1 2
1 3 3 1 3
1 3 3 2 3
1 3 4 1 2
1 3 4 1 3
1 3 4 2 3
1 3 5 1 2
1 3 5 1 3
1 3 5 2 3
1 3 6 1 2
1 3 6 1 3
1 3 6 2 3
2 3 1 1 2
2 3 1 1 3
2 3 1 2 3
2 3 2 1 2
2 3 2 1 3
2 3 2 2 3
2 3 3 1 2
2 3 3 1 3
2 3 3 2 3
2 3 4 1 2
2 3 4 1 3
2 3 4 2...

output:

1
1
1
-1
1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
1
1
1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
1
1
1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
1
1
1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
1
1
1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1

result:

ok 90 lines

Test #4:

score: 0
Accepted
time: 0ms
memory: 3768kb

input:

180
1 4 1 1 2
1 4 1 1 3
1 4 1 1 4
1 4 1 2 3
1 4 1 2 4
1 4 1 3 4
1 4 2 1 2
1 4 2 1 3
1 4 2 1 4
1 4 2 2 3
1 4 2 2 4
1 4 2 3 4
1 4 3 1 2
1 4 3 1 3
1 4 3 1 4
1 4 3 2 3
1 4 3 2 4
1 4 3 3 4
1 4 4 1 2
1 4 4 1 3
1 4 4 1 4
1 4 4 2 3
1 4 4 2 4
1 4 4 3 4
1 4 5 1 2
1 4 5 1 3
1 4 5 1 4
1 4 5 2 3
1 4 5 2 4
1 4 5 ...

output:

1
1
1
1
1
1
2
1
1
3
1
2
-1
-1
1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
1
1
1
1
1
1
1
2
3
1
2
1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
1
1
1
1
1
1
2
1
1
3
1
2
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
1
1
1
1
1
1
1...

result:

ok 180 lines

Test #5:

score: 0
Accepted
time: 1ms
memory: 3964kb

input:

300
1 5 1 1 2
1 5 1 1 3
1 5 1 1 4
1 5 1 1 5
1 5 1 2 3
1 5 1 2 4
1 5 1 2 5
1 5 1 3 4
1 5 1 3 5
1 5 1 4 5
1 5 2 1 2
1 5 2 1 3
1 5 2 1 4
1 5 2 1 5
1 5 2 2 3
1 5 2 2 4
1 5 2 2 5
1 5 2 3 4
1 5 2 3 5
1 5 2 4 5
1 5 3 1 2
1 5 3 1 3
1 5 3 1 4
1 5 3 1 5
1 5 3 2 3
1 5 3 2 4
1 5 3 2 5
1 5 3 3 4
1 5 3 3 5
1 5 3 ...

output:

1
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
2
1
2
2
-1
1
1
-1
3
1
-1
-1
2
-1
-1
-1
1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
1
1
1
1
1
1
1
1
1
1
1
2
3
4
1
2
3
1
2
1
-1
-1
-1
-1
-1
1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
...

result:

ok 300 lines

Test #6:

score: 0
Accepted
time: 1ms
memory: 3888kb

input:

450
1 6 1 1 2
1 6 1 1 3
1 6 1 1 4
1 6 1 1 5
1 6 1 1 6
1 6 1 2 3
1 6 1 2 4
1 6 1 2 5
1 6 1 2 6
1 6 1 3 4
1 6 1 3 5
1 6 1 3 6
1 6 1 4 5
1 6 1 4 6
1 6 1 5 6
1 6 2 1 2
1 6 2 1 3
1 6 2 1 4
1 6 2 1 5
1 6 2 1 6
1 6 2 2 3
1 6 2 2 4
1 6 2 2 5
1 6 2 2 6
1 6 2 3 4
1 6 2 3 5
1 6 2 3 6
1 6 2 4 5
1 6 2 4 6
1 6 2 ...

output:

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
2
1
1
1
2
1
1
2
1
2
2
2
1
1
1
2
3
1
1
3
3
1
2
2
2
2
-1
-1
1
1
-1
-1
3
1
-1
-1
-1
-1
-1
2
-1
-1
-1
-1
1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
3
4
5
1
2
3
4
1
2
3
1
2
1
-1
-1
-1
-1
-1
2
1
3
-...

result:

ok 450 lines

Test #7:

score: 0
Accepted
time: 1ms
memory: 3776kb

input:

630
1 7 1 1 2
1 7 1 1 3
1 7 1 1 4
1 7 1 1 5
1 7 1 1 6
1 7 1 1 7
1 7 1 2 3
1 7 1 2 4
1 7 1 2 5
1 7 1 2 6
1 7 1 2 7
1 7 1 3 4
1 7 1 3 5
1 7 1 3 6
1 7 1 3 7
1 7 1 4 5
1 7 1 4 6
1 7 1 4 7
1 7 1 5 6
1 7 1 5 7
1 7 1 6 7
1 7 2 1 2
1 7 2 1 3
1 7 2 1 4
1 7 2 1 5
1 7 2 1 6
1 7 2 1 7
1 7 2 2 3
1 7 2 2 4
1 7 2 ...

output:

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
2
1
1
1
2
1
1
2
1
2
2
2
1
1
1
1
2
2
1
1
1
2
3
1
1
2
2
1
2
2
2
2
2
-1
1
1
1
2
-1
3
1
1
-1
3
3
1
-1
-1
-1
2
2
2
2
-1
-1
-1
1
1
-1
-1
-1
3
1
-1
-1
-1
-1
-1
-1
-1
-1
-1
2
-1
-1
-1
-1
-1
1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
1
1
1
1...

result:

ok 630 lines

Test #8:

score: 0
Accepted
time: 2ms
memory: 3964kb

input:

840
1 8 1 1 2
1 8 1 1 3
1 8 1 1 4
1 8 1 1 5
1 8 1 1 6
1 8 1 1 7
1 8 1 1 8
1 8 1 2 3
1 8 1 2 4
1 8 1 2 5
1 8 1 2 6
1 8 1 2 7
1 8 1 2 8
1 8 1 3 4
1 8 1 3 5
1 8 1 3 6
1 8 1 3 7
1 8 1 3 8
1 8 1 4 5
1 8 1 4 6
1 8 1 4 7
1 8 1 4 8
1 8 1 5 6
1 8 1 5 7
1 8 1 5 8
1 8 1 6 7
1 8 1 6 8
1 8 1 7 8
1 8 2 1 2
1 8 2 ...

output:

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
2
1
1
1
2
1
1
2
1
2
2
2
1
1
1
1
1
2
2
1
1
1
1
2
2
1
1
1
2
2
1
1
2
2
1
2
2
2
2
2
2
1
1
1
1
2
2
3
1
1
1
2
3
3
1
1
3
3
3
1
2
2
2
2
2
2
2
2
-1
-1
1
1
1
2
-1
-1
3
1
1
-1
-1
3
3
1
-1
-1
-1
-1
-1
-1
-1
2
2
2
2
-1
-1...

result:

ok 840 lines

Test #9:

score: 0
Accepted
time: 2ms
memory: 3808kb

input:

1080
1 9 1 1 2
1 9 1 1 3
1 9 1 1 4
1 9 1 1 5
1 9 1 1 6
1 9 1 1 7
1 9 1 1 8
1 9 1 1 9
1 9 1 2 3
1 9 1 2 4
1 9 1 2 5
1 9 1 2 6
1 9 1 2 7
1 9 1 2 8
1 9 1 2 9
1 9 1 3 4
1 9 1 3 5
1 9 1 3 6
1 9 1 3 7
1 9 1 3 8
1 9 1 3 9
1 9 1 4 5
1 9 1 4 6
1 9 1 4 7
1 9 1 4 8
1 9 1 4 9
1 9 1 5 6
1 9 1 5 7
1 9 1 5 8
1 9 1...

output:

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
2
1
1
1
2
1
1
2
1
2
2
2
1
1
1
1
1
1
2
2
1
1
1
1
1
2
2
1
1
1
1
2
2
1
1
1
2
2
1
1
2
2
1
2
2
2
2
2
2
1
1
1
1
1
2
2
2
1
1
1
1
2
2
3
1
1
1
2
3
3
1
1
2
2
2
1
2
2
2
2
2
2
2
2
2
-1
1
1...

result:

ok 1080 lines

Test #10:

score: 0
Accepted
time: 3ms
memory: 3808kb

input:

1350
1 10 1 1 2
1 10 1 1 3
1 10 1 1 4
1 10 1 1 5
1 10 1 1 6
1 10 1 1 7
1 10 1 1 8
1 10 1 1 9
1 10 1 1 10
1 10 1 2 3
1 10 1 2 4
1 10 1 2 5
1 10 1 2 6
1 10 1 2 7
1 10 1 2 8
1 10 1 2 9
1 10 1 2 10
1 10 1 3 4
1 10 1 3 5
1 10 1 3 6
1 10 1 3 7
1 10 1 3 8
1 10 1 3 9
1 10 1 3 10
1 10 1 4 5
1 10 1 4 6
1 10 1...

output:

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
2
1
1
1
2
1
1
2
1
2
2
2
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
2
2
1
1
1
1
1
2
2
1
1
1
1
2
2
1
1
1
2
2
1
1
2
2
1
2
2
2
2
2
2
1
1
1
1
1
1
2
2
2
1
1
1
...

result:

ok 1350 lines

Test #11:

score: -100
Wrong Answer
time: 6ms
memory: 3968kb

input:

1650
1 11 1 1 2
1 11 1 1 3
1 11 1 1 4
1 11 1 1 5
1 11 1 1 6
1 11 1 1 7
1 11 1 1 8
1 11 1 1 9
1 11 1 1 10
1 11 1 1 11
1 11 1 2 3
1 11 1 2 4
1 11 1 2 5
1 11 1 2 6
1 11 1 2 7
1 11 1 2 8
1 11 1 2 9
1 11 1 2 10
1 11 1 2 11
1 11 1 3 4
1 11 1 3 5
1 11 1 3 6
1 11 1 3 7
1 11 1 3 8
1 11 1 3 9
1 11 1 3 10
1 11...

output:

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
2
1
1
1
2
1
1
2
1
2
2
2
1
1
1
1
1
1
1
2
2
2
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
2
2
1
1
1
1
1
2
2
1
1
1
1
...

result:

wrong answer 120th lines differ - expected: '1', found: '2'