Informatică, întrebare adresată de Ionut945, 8 ani în urmă

Problema de pe pbinfo #3568:
Cerința:
Spiridușii lui Moș Crăciun au făcut un număr N de cadouri. Totuși, Moșul este nemulțumit de munca lor, așa că, prin interschimbarea cifrelor numărului N, el poate modifica numărul de cadouri existente. Fiind foarte bătrân și greșind mult la calcule, vă roagă să îl ajutați să determine numărul maxim de cadouri ce se pot obține.
Date de intrare:
Fișierul de intrare maxcadou.in conține pe prima linie numărul N.
Date de ieșire:
Fișierul de ieșire maxcadou.out va conține pe prima linie numărul maxim de cadouri pe care îl poate obține moșul doar cu cifrele vechiului număr.
Restricții și precizări:
1 ≤ n ≤ 1017
interschimbarea cifrelor = schimbarea cifrelor între ele
Pentru 60% din punctaj n ≤ 103

Răspunsuri la întrebare

Răspuns de Petruccinator
1

#include <iostream>

#include <algorithm>

int main() {

std::string s;

std::cin >> s;

std::sort(s.begin(), s.end(), std::greater<char>());

std::cout << s;

}


Ionut945: Ceea ce ai trimis tu, din pacate da 0 punccte
Petruccinator: Cum arata stdout si ce asteapta testul?
Ionut945: Exemplu

maxcadou.in
1729
maxcadou.out
9721

Explicație

Din toate numerele care se pot forma cu cele 4 cifre ale numărului inițial, 9721 este cel maximal
Petruccinator: Am inteles, atunci trebuie operatii cu fisiere, nu de la consola. Alta data precizeaza-ti corect intrebarea. Acum reformulez.
Petruccinator: #include
#include
#include

int main() {
std::string s;

{
std::ifstream fin("maxcadou.in");
fin >> s;
}

std::sort(s.begin(), s.end(), std::greater());

std::ofstream fout("maxcadou.out");
fout << s;
}
Petruccinator: pastebin.com/Aam578p6
Petruccinator: Cand o sarcina necesita fisiere. Fii bun si inlocuieste operatiile de consola cu cele de fisier. Raspunsurile nu mereu sunt mot a mot.
Ionut945: ok...
Alte întrebări interesante