Yêu cầu Cho một dãy N số nguyên và số nguyên k, hãy viết chương trình in ra số nhỏ nhất trong dãy số mà lớn hơn k. Dữ liệu * Dòng thứ nhất ghi hai số nguyên dương N và k ( N, k <= 10^6 ). * Dòng thứ hai ghi N số nguyên dương Ai ( Ai <= 10^9 ). Kết quả In ra số nhỏ nhất lớn hơn k trong N số nguyên. Nếu không có số nào thì in ra -1. Ví dụ input 4 3 1 2 4 6 output 4
2 câu trả lời
#include <bits/stdc++.h>
using namespace std;
long long n,k;
int main()
{
cin >> n >> k;
long long a[n];
for (long long i=0; i<n; i++)
cin >> a[i];
long long min=a[0];
for (long long i=0; i<n; i++)
if ((not(min>k) or a[i]<min) and a[i]>k)
min=a[i];
if (min>k)
cout << min;
else
cout << -1;
}
#include <iostream>
#define INT_MAX 2147483647 //Lưu giá trị max của kiểu int
using namespace std;
int main()
{
int N, k, min = INT_MAX;
int a;
cin >> N >> k;
for (int i = 0; i < N; i++)
{
cin >> a;
if (min > a && a > k)
{
min = a;
}
}
if (min != INT_MAX)
{
cout << min;
}
else
{
cout << -1;
}
return 0;
}
Mình test thử luôn r nha