Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

RGB7002 - Гурвалжин

Өгөгдсөн гурвалжны периметрийг ол.

Input

Гурвалжны талууд бүхэл тоогоор нэг мөрөнд зайгаар тусгаарлагдан өгөгдөнө.

Output

Гурвалжны периметр.

Example

Input:
3 4 5

Output:
12


Нэмсэн:Bataa
Огноо:2011-01-15
Хугацааны хязгаарлалт:1s
Эх кодын хэмжээний хязгаарлалт:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Програмчлалын хэлүүд:ADA95 ASM32 BASH BF C NCSHARP CSHARP C++ 4.3.2 CPP C99 CLPS LISP sbcl LISP clisp D ERL FORTRAN HASK ICON ICK JAVA JS-RHINO JULIA LUA NEM NICE OCAML PAS-GPC PAS-FPC PERL PHP PIKE PRLG-swi PYTHON PYPY3 PYTHON3 RUBY SCALA SCM guile ST TCL WHITESPACE

hide comments
2024-11-13 06:28:38
hi llra
2024-11-13 02:59:33
all i want for chrismaaaaas isss youuuu
2024-11-13 02:59:15
#include <iostream>
using namespace std;

int main() {
int a, b, c, d;
cin >> a >> b >> c >> d;
bool isTriangle = (a + b > c && a + c > b && b + c > a) ||
(a + b > d && a + d > b && b + d > a) ||
(a + c > d && a + d > c && c + d > a) ||
(b + c > d && b + d > c && c + d > b);

bool isSegment = (a + b == c) || (a + c == b) || (b + c == a) ||
(a + b == d) || (a + d == b) || (b + d == a) ||
(a + c == d) || (a + d == c) || (c + d == a) ||
(b + c == d) || (b + d == c) || (c + d == b);

if (isTriangle) {
cout << "TRIANGLE" << endl;
} else if (isSegment) {
cout << "SEGMENT" << endl;
} else {
cout << "IMPOSSIBLE" << endl;
}

return 0;
}
2024-11-13 02:53:23
boovgui dulbikini
2024-11-13 02:29:48

Тоглоомын дүрмүүдийг ойлгоод, ялагчийг тодорхойлоход шаардагдах алгоритмийг боловсруулахад дараах алхмуудыг дагах болно.

Алгоритм
Оноог хураах:
Тоглогч бүрийн нийт оноог хадгалах хэрэгтэй. Тиймээс, тоглогчийн нэрийг түлхүүр (key) болгон ашиглаж, түүний нийт оноог утга (value) болгон хадгална. Энэ үүднээс бид map буюу unordered_map ашиглах болно.
Ялагчийн шалгуур:
Тоглогчийн нийт оноог хурааж авсны дараа хамгийн өндөр оноо авсан тоглогчдыг тодорхойлох хэрэгтэй.
Хэрвээ хамгийн өндөр оноотой хэд хэдэн тоглогч байвал, хамгийн түрүүнд хамгийн өндөр оноонд хүрсэн тоглогч ялагч болно.
Алхамууд:
Эхлээд тоглогчдын нэр болон тэдний авсан оноог хурааж map буюу unordered_map-д хадгална.
Дараа нь хамгийн өндөр оноог тодорхойлоход, бид нэгэнт хураагдсан оноог давтан шалгаж хамгийн их оноо авсан тоглогчийг олоход дараах хоёр үзүүлэлтийг харгалзаж үзнэ:
Хамгийн өндөр оноог олох.
Хамгийн түрүүнд хамгийн өндөр оноонд хүрсэн тоглогчийг олох.
Алгоритм
cpp
Copy code
#include <iostream>
#include <unordered_map>
#include <vector>
#include <string>
using namespace std;

int main() {
int n; // Тойргийн тоо
cin >> n;

unordered_map<string, int> scores; // Тоглогчдын нэр болон тэдний оноог хадгална
vector<pair<string, int>> log; // Тойрог бүрийн мэдээг хадгална

// Тойрог бүрийн оноог хураах
for (int i = 0; i < n; ++i) {
string name;
int score;
cin >> name >> score;
log.push_back({name, score});
scores[name] += score; // Тоглогчийн оноог хураах
}

// Хамгийн өндөр оноо авсан тоглогчдын нэрийг олно
int max_score = -1000000; // Онолын хамгийн бага оноо
vector<string> candidates; // Хамгийн өндөр оноотой тоглогчдын нэрс

// Хамгийн өндөр оноог тодорхойлох
for (auto& entry : scores) {
if (entry.second > max_score) {
max_score = entry.second;
candidates.clear();
candidates.push_back(entry.first);
} else if (entry.second == max_score) {
candidates.push_back(entry.first);
}
}

// Хэрвээ олон тоглогчид хамгийн өндөр оноо авсан бол хамгийн түрүүнд хамгийн өндөр оноонд хүрсэн тоглогчийг олно
if (candidates.size() > 1) {
// Хамгийн түрүүнд хүрсэн тоглогчийг олох
for (auto& entry : log) {
for (const string& name : candidates) {
if (entry.first == name && scores[name] == max_score) {
cout << name << endl;
return 0;
}
}
}
} else {
// Хамгийн өндөр оноотой ганц тоглогч байгаа бол
cout << candidates[0] << endl;
}

return 0;
}
Тайлбар:
Оноог хураах:

unordered_map<string, int> scores нь тоглогчийн нэрийг түлхүүр болгон авч, нийт оноог утга болгон хадгалдаг.
Бид log.push_back({name, score}) ашиглан тойрог бүрийн мэдээллийг хадгалж байна. Энэ нь хамгийн түрүүнд хамгийн өндөр оноонд хүрсэн тоглогчийг тодорхойлоход хэрэгтэй.
Хамгийн өндөр оноо олох:

Нэгдсэн оноо тодорхойлох үед хамгийн өндөр оноо аваагүй тоглогчдыг шүүж, хамгийн өндөр оноотой тоглогчдын нэрсийг candidates жагсаалтанд хадгалдаг.
Хамгийн түрүүнд хүрсэн тоглогчийг олох:

Хэрвээ олон тоглогч хамгийн өндөр оноотой бол тэдний нэрсийг candidates жагсаалтад хадгалсан. Дараа нь, log-ийг шалгаж хамгийн түрүүнд хамгийн өндөр оноонд хүрсэн тоглогчийг тодорхойлно.
Ганц ялагч:

Хэрвээ ганц тоглогч хамгийн өндөр оноог авсан бол шууд түүний нэрийг хэвлэнэ.
Жишээ 1:
Орхиж буй:
Copy code
3
mike 3
andrew 5
mike 2
Гаралт:
Copy code
andrew
Жишээ 2:
Орхиж буй:
Copy code
3
andrew 3
andrew 2
mike 5
Гаралт:
Copy code
andrew
Дүгнэлт:
Энэхүү код нь өгөгдсөн дүрмээр ялагчийг тодорхойлох ёстойгоо бүрэн гүйцэт шийднэ.




2024-11-13 02:24:35
?
2024-11-12 08:08:20
miigaa dugui bol
2024-11-12 07:25:54
monhbataa oroondoo honoldoo
2024-11-12 07:22:45
monhbataa boliochee
2024-11-12 07:21:08
ymar zavaan ym be ylguumkhuu
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.