P144SUMA spoj PTIT – Nam châm
Nguồn đề bài: http://www.spoj.com/PTIT/problems/P144SUMA/ 1. Đề bài P144SUMA spoj Tí đang học về từ tính của nam châm. Cậu biết rằng nam châm có 2 cực âm và dương, cùng cực thì đẩy nhau, khác cực thì hút nhau. Một lần cậu sắp lần lượt các nam châm theo chiều dọc, nhiệm vụ của ...
Nguồn đề bài: http://www.spoj.com/PTIT/problems/P144SUMA/
1. Đề bài P144SUMA spoj
Tí đang học về từ tính của nam châm. Cậu biết rằng nam châm có 2 cực âm và dương, cùng cực thì đẩy nhau, khác cực thì hút nhau.
Một lần cậu sắp lần lượt các nam châm theo chiều dọc, nhiệm vụ của bạn là xem có bao nhiêu khối nam châm nằm rời nhau.
Nam châm được biểu diễn biểu 2 kí tự 0 và 1. 0 là cực âm, 1 là cực dương.
Input
Dòng đầu tiên là số nguyên n (1 <=n <= 100 000).
n dòng tiếp theo là các xâu đại điện cho nam châm, lần lượt được Tí xếp.
Output
Một dòng duy nhất là số khối nam châm nằm rời nhau.
Example
Test 1:
Input:
6
10
10
10
01
10
10
Output:
3
Test 2:
Input:
4
01
01
10
10
Output:
2
2. Cách làm P144SUMA spoj PTIT – Nam châm
– Bài này quá đơn giản, mình sẽ giải thích code bên dưới.
– ở mỗi dòng, nhập 2 số 0, 1 và xâu s.
– dùng char c để lưu lại kí tự s[2], và tiếp tục nhập tiếp, nếu S[1] vừa nhập = c thì tức là nó đẩy nhau. cập nhật kết quả và biến c cho lần thực hiện sau
3. Code tham khảo P144SUMA 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 | const fi='; nmax=100000; type data=longint; var f:text; n:data; procedure xuli; var i:data; s:string; c:char; dem:data; begin assign(f,fi); reset(f); readln(f,n); dem:=1; c:=' '; for i:=1 to n do begin readln(f,s); if s[1]=c then inc(dem); c:=s[2]; end; writeln(dem); close(f); end; begin xuli; end. |