Buna seara ! Va rog extrem de frumos ! Am si eu nevoie de o rezolvare pentru problema de mai jos , va rog este pentru ultima nota de info . Va rog rapid , este pentru maine . Dau si coroana si tot ce vreti voi , dar va rog frumos !!!
tema
Timp maxim de execuţie / test:
0.1s
Memorie totala disponibilă / stivă:
2MB / 1MB
La Palatul Copiilor s-au înscris la cursul de informatică n elevi, pe care i-am numerotat, pentru a mă referi mai uşor la ei, cu numere de la 1 la n.
În fiecare săptămână ei au de făcut o temă. Când primesc tema, îmi notez numărul copilului care a trimis tema.
Din păcate de fiecare dată există cel puţin un copil care nu trimite tema.
Cerinţă
Scrieţi un program care să afişeze, în ordine strict crescătoare, numerele copiilor care nu au trimis tema săptămâna aceasta.
Date de intrare
Fişierul de intrare tema.in conţine pe prima linie un număr natural n, reprezentând numărul de elevi înscrişi la cursul de informatică. Pe a doua linie se află un număr natural m, reprezentând numărul elevilor care au trimis tema. Pe a treia linie se află m numere naturale distincte, cuprinse între 1 şi n, separate prin câte un spaţiu, reprezentând numerele copiilor care au trimis tema.
Date de ieşire
Fişierul de ieşire tema.out va conţine pe prima linie numerele de ordine ale copiilor care nu au trimis tema, în ordine crescătoare, separate prin câte un spaţiu.
Restricţii
• 2 ≤ n ≤ 100
• 0≤m
• Pentru 40% dintre teste m=n-1
• Pentru 60% dintre teste numerele copiilor care au trimis tema din fişierul de intrare sunt în ordine strict crescătoare.
Exemple
tema.in tema.out Explicaţii
7
5
4 1 7 2 6
3 5
2 copii nu au trimis tema (copilul cu numărul 3 şi copilul cu numărul 5).
Multumesc!!
Utilizator anonim:
Ai gasit?
Răspunsuri la întrebare
Răspuns de
1
Răspuns:
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("tema.in");
ofstream fout("tema.out");
short n, i, m, num, v[101];
int main()
{
fin >> n >> m;
for (i=1; i<=m; ++i)
{
fin >> num;
v[num]=1;
}
for (num=1; num<=n; ++num)
if (v[num]==0) fout << num << " ";
}
Explicație:
1. e folosit vector caracteristic v[], in care se pune pe locul num valoarea 1 dacă elevul a trimis problema.
2. Parcurgem vectorul caracteristic de la 1 la n şi dacă pe locul num e 0, înseamnă că elevul nu a trimis problema şi trimitem num în fişierul de ieşire
Alte întrebări interesante
Chimie,
8 ani în urmă
Evaluare Națională: Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
9 ani în urmă
Engleza,
9 ani în urmă
Matematică,
9 ani în urmă