Điểm:
100 (p)
Thời gian:
1.0s
Bộ nhớ:
1023M
Input:
bàn phím
Output:
màn hình
Cho một dãy gồm \(n\) số nguyên dương \(a_{1}, a_{2}, \ldots, a_{n}\) và số nguyên dương \(k\).
Hãy in số nhỏ nhất lớn hơn \(k\) cùng chỉ số của nó, nếu có nhiều số nhỏ nhất lớn hơn \(k\) thì in ra các chỉ số của nó.
Input
- Dòng đầu chứa số \(n\) và \(k\) \((1 \leq n \leq 10^{5}, 1 \leq k \leq 10^{9})\).
- Dòng thứ hai chứa \(n\) số nguyên dương \(a_{1}, a_{2}, \ldots, a_{n}\) \((1 \leq_{i} \leq 10^{9})\).
Output
- Dòng đầu chứa số có giá trị nhỏ nhất lớn hơn \(k\), dòng thứ hai chứa các chỉ số của nó.
Example
Test 1
Input
6 35
91 32 43 43 451 54
Output
43
3 4
Bình luận
[thu hồi]
Bài yêu cầu lạ phết, bảo là NẾU CÓ NHIỀU SỐ NHỎ NHẤT LỚN HƠN K thì mới in chỉ số, mà sao máy chấm có 1 số nhỏ nhất lớn hơn mà vẫn in chỉ số nhể
include <iostream>
using namespace std;
int a[100001],b[100001];
int n,m;
int main()
{
cin>>n>>m;
for (int i=0;i<n;i++)cin>>a[i];
for (int i=0;i<n;i++)b[i]=0;
int x;
for (int i=0;i<n;i++)if (a[i]>m)
{
x=a[i];
b[i]=x;
}
int y=b[0];
for (int i=1;i<n;i++)if (b[i]!=0)
{
y=b[i];
break;
}
for (int i=1;i<n;i++)if (b[i]!=0&&b[i]<y)y=b[i];
cout<<y<<endl;
for (int i=0;i<n;i++)if (a[i]==y)cout <<i+1<<" ";
}
k
cho hỏi là "chỉ số" làm ntn nhỉ
ko cần code đâu vì tui dùng python :)) nên chắc khó đụng hàng lắm
đôi khi đề không phẩy 1 vài khu thì tôi lại bị ngáo
Bình luận bị ẩn vì nhiều phản hồi tiêu cực. Nhấp vào đây để mở.
👌