Omówienie zadania Trójkąt – zadanie pokazuje jak sortować liczby w C++:
https://youtu.be/sQ99vyC2lJ4? t=5646
Zadanie analogiczne do zadania Deski z XIV Olimpiady Informatycznej Juniorów.
https://youtu.be/sQ99vyC2lJ4?
Zadanie analogiczne do zadania Deski z XIV Olimpiady Informatycznej Juniorów.
Link do zadania:
https://szkopul.edu.pl/ problemset/problem/trojkat/ site/
https://szkopul.edu.pl/
#include <bits/stdc++.h>
using namespace std;
const int MAX_ODCINKOW = 1e6+7;
long long odcinki[MAX_ODCINKOW];
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int liczba_odcinkow;
long long obwod;
int i;
cin >> liczba_odcinkow;
for (i=0; i<liczba_odcinkow; ++i)
cin >> odcinki[i];
sort (odcinki, odcinki+liczba_odcinkow);
obwod = odcinki[liczba_odcinkow-1] + odcinki[liczba_odcinkow-2] + odcinki[liczba_odcinkow-3];
if ( odcinki[liczba_odcinkow-1] < odcinki[liczba_odcinkow-2] + odcinki[liczba_odcinkow-3] ) {
cout << obwod << "\n";
return 0;
}
for (i=liczba_odcinkow-4; i>=0; --i) {
obwod = obwod - odcinki[i+3];
obwod = obwod + odcinki[i];
if ( odcinki[i+2] < odcinki[i+1] + odcinki[i] ) {
cout << obwod << "\n";
return 0;
}
}
cout << -1 << "\n";
return 0;
}
