Nguồn đề bài: http://www.spoj.com/PTIT/problems/BCACM11B/
1. Đề bài BCACM11B spoj PTIT
Ma trận xoáy ốc được tạo thành bằng cách điền số 1 vào hàng 1 cột 1, sau đó điền số tăng dần theo chiều kim đồng hồ, ví dụ:
1 | 2 | 3 | 4 | 5 |
16 | 17 | 18 | 19 | 6 |
15 | 24 | 25 | 20 | 7 |
14 | 23 | 22 | 21 | 8 |
13 | 12 | 11 | 10 | 9 |
Hãy viết chương trình cho biết giá trị tại ô (x, y) của 1 ma trận xoáy ốc vuông kích thước n x n.
Input
Dòng đầu tiên ghi số bộ test, không lớn hơn 100. Mỗi bộ test được ghi trên 1 dòng, bao gồm 3 số n x y (1 ≤ n, x, y ≤ 100)
Output
Với mỗi bộ test, in ra giá trị tại ô hàng x cột y trong ma trận xoáy ốc n x n
Example
Input:
2
5 2 3
4 1 2
Output:
18
2
2. code tham khảo BCACM11B spoj PTIT
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | const fi=''; nmax=100; type data=integer; var f:text; n,x,y:data; test:data; A:array[1..nmax,1..nmax] of data; procedure xuli; var i,tren,duoi,trai,phai:data; gt:data; begin tren:=1; duoi:=n; phai:=n; trai:=1; gt:=0; repeat for i:=trai to phai do begin inc(gt); A[tren,i]:=gt; end; inc(tren); for i:=tren to duoi do begin inc(gt); a[i,phai]:=gt; end; dec(phai); for i:=phai downto trai do begin inc(gt); a[duoi,i]:=gt; end; dec(duoi); for i:= duoi downto tren do begin inc(gt); a[i,trai]:=gt; end; inc(trai); until gt=n*n; writeln(a[x,y]); end; procedure docfile; var i:data; begin assign(f,fi); reset(f); readln(f,test); for i:=1 to test do begin readln(f,n,x,y); xuli; end; close(f); end; begin docfile; end. |
Bài viết liên quan
- P167PROE spoj PTIT – ROUND 7E – Phương trình
- PTIT016E spoj PTIT – ACM PTIT 2016 E – Kỳ thi ACM/ICPC
- PTIT016D spoj PTIT- ACM PTIT 2016 D – Biểu thức
- Spoj PTIT PTIT016C – ACM PTIT 2016 C – Chẵn lẻ
- PTIT127A spoj PTIT – Tổ chức kì thi
- P164SUMI spoj PTIT – ROUND 4I – Next round
- PTIT135J spoj PTIT – Tính lãi suất
- P156SUME spoj PTIT – ROUND 6E – Ước chung của chuỗi
- P156PROE spoj PTIT – ROUND 6E – Phép dịch
- P156SUMH spoj PTIT – ROUND 6H – Kim cương