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: | 1s
|
Limit długości kodu źródłowego | 50000B |
Limit pamięci: | 1536MB |
Cluster: |
Cube (Intel G860)
|
Języki programowania: | All except: GOSU |
Pochodzenie: | - |