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
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift
Cho dãy ~n~ số nguyên ~a_1, a_2, ..., a_n~.
Hãy tính và in ra những thông tin sau:
- Tổng các số của dãy.
- Số lượng số chẵn có trong dãy.
- Phần tử nguyên dương có chỉ số lớn nhất trong dãy, nếu không có số nào thỏa mãn trong dãy thì in ra số 0.
Input
- Dòng đầu chứa số nguyên dương ~n~ ~(n ≤ 100)~;
- Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, ..., a_n~ ~(-1000 ≤ a_i ≤ 1000)~.
Output
- Một dòng chứa ba số nguyên tương tứng với câu trả lời cho ba yêu cầu của bài toán.
Sample
Input #1
5
3 2 6 8 5
Output #1
24 3 5
Giải thích:
- Tổng các phần tử là 24
- Số lượng số chẵn là 3
- Số 5 là phần tử nguyên dương có chỉ số lớn nhất.
Input #2
6
5 -3 6 8 7 -13
Output #2
10 2 7
Giải thích:
- Tổng các phần tử là 10
- Số lượng số chẵn là 2
- Số 7 là phần tử nguyên dương có chỉ số lớn nhất.
Problem source: Chuyên Sơn La Online Judge
Bình luận
Mang 1 chieu tong hop
n = int(input()) A = list(map(int,input().split())) s = sum(1 for i in A if i%2==0) S = sum(i for i in A) d = 0 for i in range(n-1,-1,-1): if(A[i]>0): d+=1 x = i break if(d!=0): print(S,s,A[x]) else: print(S,s,0)
DENO :
#include <stdio.h> int main(){ int n; scanf("%d",&n); int a[n]; int sum=0; int count=0; for(int i=0;i<n;i++){ scanf("%d",&a[i]); } for(int i=0;i<n;i++){ sum+=a[i]; if(a[i]%2==0){ count ++; } } int temp=0; for(int i=0;i<n;i++){ if(a[i]>=0){ temp=a[i]; } } printf("%d %d %d",sum,count,temp); }
Phần tử nguyên dương có chỉ số lớn nhất là gì vậy ạ
là a[i]>=0 có i lớn nhất
phải là lớn hơn không thôi chứ bro
cho em hỏi output 2 ra 0 chứ sao lại 7 ạ
Phần tử nguyên dương có chỉ số lớn nhất trong dãy, với số -13 < 0 rồi thì vẫn xét tiếp đến phần từ bé hơn là 7 mà 7 lớn hơn 0 thì output vẫn là 7, output chỉ ra 0 khi trong dãy full số âm kia