poniedziałek, 20 listopada 2017

00014 - 1011 - Połowa - www.pl.spoj.com

Treść zadania:

Dla podanego ciągu długości 2*k, wypisz na standardowe wyjście dokładnie pierwszą połowę ciągu.

Wejście
W pierwszej linijce wejścia znajduje się jedna liczba całkowita t (1<=t<=100). Każdy wiersz o numerze od 2 do t+1, zawiera ciąg długości 2*k (1<=k<=1000).

Wyjście
Dla każdego przypadku testowego na wyjściu powinien pojawić się ciąg będący pierwszą połową wczytanego ciągu.

Example

Wejście:
3
pierwszy
lubiec
ktotozrobi

Output:
pier
lub
ktoto

Kod źródłowy w C:
#include <stdio.h>
#include <stdlib.h>

char characters[50000];

int main()
{
    char c;
    int i=0,j,k=0,l=0;
    scanf("%d",&i);
    for(j=0;j<=i;++j)
    {
        for(k=0;scanf("%c",&c)==1, c != '\n';++k)
        {
            characters[k]=c;
        }
        characters[k]='\0';
        for(k=0;characters[k]!='\0';++k)
        {
            ++l;
        }
        l=l/2;
        for(k=0;k<l;++k)
        {
            printf("%c",characters[k]);
        }
        l=0;
        printf("\n");
    }
    return 0;
}


Kod źródłowy w C++:
#include <iostream>
#include <stdio.h>

using namespace std;

char characters[50000];

int main()
{
    char c;
    int i=0,j,k=0,l=0;
    cin>>i;
    for(j=0;j<=i;++j)
    {
        c=getchar();
        for(k=0;c==1, c != '\n';++k)
        {
            characters[k]=c;
            c=getchar();
        }
        characters[k]='\0';
        for(k=0;characters[k]!='\0';++k)
        {
            ++l;
        }
        l=l/2;
        for(k=0;k<l;++k)
        {
            cout<<characters[k];
        }
        l=0;
        cout<<endl;
    }
    return 0;
}


Źródło:
http://pl.spoj.com/problems/POL/

Brak komentarzy:

Prześlij komentarz