Доброго времени суток! Решал задачу, условие прилагается. Проблема в том, что на одном тесте выдает ошибку времени (ограничение в полсекунды). Ускорение ввода проблему не решило. Вопрос: есть ли у меня подводный камень в коде, или возможна ошибка в тестах? Заранее спасибо
EDIT : файлы действительно те, в пдф условии неправильно указано про станд. ввод/вывод
Код таков :
#include <iostream>
#include <fstream>
using namespace std;
int main() {
long n, m;
ifstream fin ("input.txt"); // FILES
ofstream fout ("output.txt"); // ASSIGNMENTS
// INPUT //
fin >> n; // Quantity of required decks
long requiredDecks[n]; // Array of required decks for the tricks
for (long i = 0; i < n; i++)
fin >> requiredDecks[i];
fin >> m; // Quantity of decks in stock
long checker[100] = {0}; // Array of existence of all possible decks in stock
for (long i = 0; i < m; i++) {
long deck;
fin >> deck;
checker[deck]++;
}
// END OF INPUT //
// MAIN PART OF PROGRAM //
for (long i = 0; i < n; i++)
if (checker[requiredDecks[i]] < 1) { // Checking for non-existence of concrete deck in hands
fout << "NO" << endl;
return 0;
}
else
--checker[requiredDecks[i]];
// END OF MAIN PART //
fout << "YES" << endl;
return 0;
}
хранить все миллионы чисел не нужно. Нужно просто составить список, сколько карт и каких есть и просто потом сравнить два списка. Я минимально пофиксил, но чуточку исправил. Ну не давать же полный ответ.
#include <iostream>
#include <fstream>
using namespace std;
int main() {
long n, m;
// INPUT //
cin >> n; // Quantity of required decks
long requiredDecks[56] = {0}; // Array of required decks for the tricks
for (long i = 0; i < n; i++) {
long t;
cin >> t;
requiredDecks[t-1]++;
}
cin >> m; // Quantity of decks in stock
long checker[56] = {0}; // Array of existence of all possible decks in stock
for (long i = 0; i < m; i++) {
long deck;
cin >> deck;
checker[deck-1]++;
}
// END OF INPUT //
// MAIN PART OF PROGRAM //
for (long i = 0; i < 56; i++)
if (checker[i] < requiredDecks[i]) {
cout << "NO" << endl;
return 0;
}
// END OF MAIN PART //
cout << "YES" << endl;
return 0;
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости