Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Tác giả:
Nguồn bài:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch
28Tech cho bạn 1 mảng toàn số 0 và 1, bạn hãy in ra độ dài của các dãy con toàn số 0 liên tiếp và toàn số 1 liên tiếp.
Ví dụ : mảng A[] = {1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0} thì có 3 dãy con số 1 liên tiếp có độ dài là 3, 1, 2 và 3 dãy con số 0 liên tiếp có độ dài là 2 1 2
Đầu vào
Dòng 1 là N : số phần tử trong mảng
Dòng 2 là N số trong mảng viết cách nhau 1 dấu cách
Giới hạn
1<=N<=10000
0<=A[i]<=1
Đầu ra
Dòng 1 in ra độ dài của các dãy con số 1 liên tiếp
Dòng 2 in ra độ dài của các dãy con số 0 liên tiếp
Ví dụ :
Input 01
10
1 0 0 0 0 0 1 1 0 1
Output 01
1 2 1
5 1
Bình luận
package org.example;
import java.util.Scanner;
public class Bai39 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] F = new int[n + 1]; for (int i = 0; i < n; i++) { F[i] = sc.nextInt(); } F[n] = 0; int dem = 0; for (int i = 0; i < n; i++) { if (F[i] == 1) { dem++; if (F[i + 1] == 0) { System.out.print(dem + " "); dem = 0; } } } System.out.println(""); F[n] = 1; int dem2 = 0; for (int i = 0; i <= n; i++) { if (F[i] == 0) { ++dem2; if (F[i + 1] == 1) { System.out.print(dem2 + " "); dem2 = 0; } } } } }
include<stdio.h>
int main() { int n ;scanf("%d",&n); int a[n] ; for(int i=0;i<n;i++) scanf("%d",a+i); int cnt =0;
for( int i=0;i<n;i++) {
if(a[i] ==1 ) ++cnt; else { // else if( cnt>0) { printf("%d",cnt) ,cnt=0;} if( cnt >0) printf("%d",cnt); cnt =0; } if( cnt >0)
// cap nhap cho a[n-1] { printf("%d",cnt);
} int d=0 ;
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
2 vòng for là xong, chứ dùng vector lưu lmj cho rối lên. 2 vòng for thì chắc 10^9 vẫn chịu đc
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.