Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|
?

BFNTEST - Precz z komentarzami!

Pani z Informatyki, która od wielu lat uczyła już Jasia, z trudem mogła ręcznie przebrnąć przez oceniane kody źródłowe doszukując się w nich rzeczywistych czy wyimaginowanych podobieństw. Poprosiła więc swojego najzdolniejszego ucznia, Jasia, o pomoc w tym arcytrudnym zadaniu. Jaś po przeanalizowaniu problemu, doszedł do wniosku, że pierwszym zadaniem jest usunięcie z programów źródłowych licznych i nieistotnych z punktu widzenia oceny podobieństw kodów, komentarzy, którymi upstrzone były (nierzadko do przesady) kody źródłowe młodszych kolegów.
Komentarze w programach źródłowych napisanych w językach C/C++ wystepują w dwóch postaciach:

/* to jest komentarz
   to wciąż jest komentarz */
lub 
          // to jest komentarz (aż do końca linii).

Zadaniem Jasia jest napisać program, który z podanego na wejściu poprawnego kodu źródłowego (o rozmiarze nie większym niż 50kB) napisanego w języku C/C++ usunie wszystkie komentarze, a pozostały nienaruszony teskt programu wydrukuje na wyjście.

Przykład 1

Wejście:

#define R(p) rand()%('9'-(p)+1)+(p) // makropolecenie
#define P(p) putc((p),stdout)
#define PP(p) P(R(p)) // makropolecenia zagnieżdżone

#include <iostream>
#include <cstdlib>

#include <cstdio>

using namespace std;

/* funkcja generująca ciąg cyfr */
void gen(int x) 
{
	if (x) PP('1'); else PP('0');
	for(;x;x--) PP('0');
}

int main()
{
	int a, d, n;
	cin >> a; srand(a); /* inicjalizacja generatora
        liczb pseudolosowych /* */
	cin >> d; cin >> n; cout << n << endl;
	for(;n;n--)
	{
		gen(rand()%d);  P(' ');
		gen(rand()%d);  P('\n');
	}
	return 0;
}

Wyjście:

#define R(p) rand()%('9'-(p)+1)+(p)
#define P(p) putc((p),stdout)
#define PP(p) P(R(p))

#include <iostream>
#include <cstdlib>

#include <cstdio>

using namespace std;


void gen(int x)
{
        if (x) PP('1'); else PP('0');
        for(;x;x--) PP('0');
}

int main()
{
        int a, d, n;
        cin >> a; srand(a);
        cin >> d; cin >> n; cout << n << endl;
        for(;n;n--)
        {
                gen(rand()%d);  P(' ');
                gen(rand()%d);  P('\n');
        }
        return 0;
}

Przykład 2

Wejście:

#include <stdio.h>
#include <stdlib.h>

typedef struct _road{
    int cost;//,Id;
    int from,to;
    struct _road *next;
}road;

int readInt(void);
inline int roadcmp(const void *a,const void *b){
    return ((road*)a)->cost-((road*)b)->cost;
};

inline void swap(road *a,road *b){
/* zamienia die zmienne point miejscami */
    road tmp=*a;
    *a=*b;
    *b=tmp;
};
/* Heapify, BuildHeap, HeapSort - funkcje sortujace tablice punktow uzywajac
   porzadku definiowanego przez funkcje compare
   wywolac nalezy poprzez HeapSort */
void Heapify(road *A,int n, int i);
void BuildHeap(road *A,int n);
void HeapSort(road *A,int n);

int city[10000]; //czy jest juz w drzewie
int main(){} /* to juz jest koniec....*/

Wyjście:

#include <stdio.h>
#include <stdlib.h>

typedef struct _road{
    int cost;
    int from,to;
    struct _road *next;
}road;

int readInt(void);
inline int roadcmp(const void *a,const void *b){
    return ((road*)a)->cost-((road*)b)->cost;
};

inline void swap(road *a,road *b){

    road tmp=*a;
    *a=*b;
    *b=tmp;
};

void Heapify(road *A,int n, int i);
void BuildHeap(road *A,int n);
void HeapSort(road *A,int n);

int city[10000];
int main(){}

Dodane przez:mima
Data dodania:2005-05-08
Limit czasu wykonania programu:0.161s
Limit długości kodu źródłowego50000B
Limit pamięci:1536MB
Cluster: Cube (Intel G860)
Języki programowania:All except: GOSU
Pochodzenie:-
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.