Проблема с лямбда функцией, вроде написал сортировку вектора по остаткам по возрастанию, так, чтобы числа с одинаковыми остатками выводились по возрастанию но она не работают, я ещё не совсем разбираюсь в сортировка по лямбда выражениям подскажите где накосячил плиз.
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
ll n, k;
cin >> n >> k;
vector<ll> V(n);
for(int i = 0; i < n; i++) cin >> V[i];
sort(V.begin(), V.end(), [&k](ll a, ll b)
{
return (a % k < b % k);
});
sort(V.begin(), V.end(), [&k](ll a, ll b)
{
return (a % k == b % k && a < b);
});
for(int i = 0; i < n; i++) cout << V[i] << " ";
Я бы использовал
sort(V.begin(), V.end(), [k](ll a, ll b)
{
return (a%k == b%k) ? a < b : a%k < b%k;
}
);
По-моему, то, что надо: https://ideone.com/OfIE0t
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости