Бодолт илгээх | Бүх бодолтууд | Шилдэг бодолтууд | Жагсаалт руу буцах |
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 |