Informatică, întrebare adresată de Utilizator anonim, 8 ani în urmă

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?
boiustef: acum mă uit
Utilizator anonim: ok , dar ca sa stii gen e problema ,, tema " , de la StartIT 2014 , prof Emanuela Cerchez (daca accesezi site-ul si te duci sus pe cautare , sa scri ,,tema" o gasesti )
boiustef: am găsit, dar cum postez codul? nu am fost pe site+ul acesta ca să pun cod. Poate îl postez aici şi încerci tu?
boiustef: am găsit cum trimit soluţia.. :))))
boiustef: este de 100
boiustef: succese!
Utilizator anonim: Am o intrebare , ma mai poti ajuta cu o singura problema , te rog foarte frumos , sper ca nu cre prea mult :) ( in caz ca da , o sa postez enuntul aici )
Utilizator anonim: cer*
boiustef: să încercăm ...

Răspunsuri la întrebare

Răspuns de boiustef
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


Utilizator anonim: Multumesc din tot sufletul !
Alte întrebări interesante