• Acasă
  • Despre noi
  • Autori
  • Mărturii
  • Arhivă
  • Trimite Articol
  • Contact

WORLDIT

Lumea în 1 și 0.

  • Știri
    • Tehnologie
    • Tehnologie mobilă
    • Securitate
    • Developers
    • Știință
    • Benzi desenate
    • Jocuri
    • Intern
  • Tehnic
    • Browser
    • C#
    • C/C++
    • Challenge
    • HTML/CSS
    • Javascript, Ajax, jQuery
    • Open Source
    • PHP
    • Python
    • Securitate IT
    • Socializare
    • WordPress
    • Altele
  • Recenzii
  • Interviuri
  • Evenimente

Problema Timer .campion 2009

0
  • Publicat de Coss
  • în Probleme algoritmică · Tehnic
  • — 30 nov., 2009 at 12:42 pm

Un timer este un dispozitiv care poate emite un semnal sonor dupa o perioada de timp specificata.

  • Cerinta

Scrieti un program care, cunoscand ora curenta, precum si perioada de timp stabilita, determina ora la care semnalul sonor va fi emis.

  • Date de intrare

Fisierul de intrare timer.in contine pe prima linie ora curenta sub forma:
HH:MM:SS
unde:
HH reprezinta ora curenta (cuprinsa intre 00 si 23)
MM reprezinta minutul curent (cuprins intre 00 si 60)
SS reprezinta secunda curenta (cuprinsa intre 00 si 60).
Pe cea de a doua linie este specificata perioada de timp dupa care timer-ul va emite semnalul sonor sub forma:
A:B:C
unde
A reprezinta numarul de ore, B reprezinta numarul de minute, iar C reprezinta numarul de secunde. Daca A este 0, atunci poate fi omis. De asemenea, daca A si B sunt ambele 0, pot fi omise. De exemplu 100:60 inseamna 100 de minute si 60 secunde, ceea ce ar fi echivalent cu 101:0 (adica 101 minute si 0 secunde) sau 1:41:0 (o ora si 41 minute).

  • Date de iesire

Fisierul de iesire timer.out va contine o singura linie pe care va fi scrisa ora la care semnalul sonor va fi emis sub forma:
HH:MM:SS
(unde SS si MM trebuie sa fie cuprinse intre 00 si 59, iar HH intre 00 si 23). Atentie! se vor specifica exact doua cifre atat pentru ora, cat si pentru minute, respectiv secunde!
Daca ora la care semnalul sonor va fi emis nu este in aceeasi zi, atunci se va specifica si numarul de zile dupa care va fi emis semnalul sonor sub forma
HH:MM:SS+D

  • Restrictii

0 ≤ A, B, C ≤ 1 000 000 000

  • Soltuia
#include
#include  

char timp[100], timp_dat[100];
int ora, min, sec, ora_dat, min_dat, sec_dat, zile = 0;
int i, j, n, lung, poz, aux, ok = 1, nr_pct = 0; 

int main()
{
    FILE *f = fopen ("timer.in","r");
    FILE *g = fopen ("timer.out","w");
    fscanf (f,"%s", &timp);
    fscanf (f,"%s", &timp_dat);
    fclose(f); 

    n = strlen (timp);
    lung = strlen (timp_dat); 

    ora = (timp[0] - '0') * 10 + timp[1] - '0';
    min = (timp[3] - '0') * 10 + timp[4] - '0';
    sec = (timp[6] - '0') * 10 + timp[7] - '0';     

    for (i=0; i< lung)
        {
            aux = aux * 10 + timp_dat[i] - '0';
            i++;
        }
        i++;
        ora += aux;
        aux = 0;
        while (timp_dat[i] != ':' && i < lung)
        {
            aux = aux * 10 + timp_dat[i] - '0';
            i++;
        }
        i++;
        min += aux;
        aux = 0;
        while (timp_dat[i] != ':' && i < lung)
        {
            aux = aux * 10 + timp_dat[i] - '0';
            i++;
        }
        i++;
        sec += aux;
        aux = 0;
    }
    i = 0;
    if (nr_pct == 1)
    {
        aux = 0;
        while (timp_dat[i] != ':' && i < lung)
        {
            aux = aux * 10 + timp_dat[i] - '0';
            i++;
        }
        i++;
        min += aux;
        aux = 0;
        while (timp_dat[i] != ':' && i < lung)
        {
            aux = aux * 10 + timp_dat[i] - '0';
            i++;
        }
        i++;
        sec += aux;
        aux = 0;
    }
    i = 0;
    if (nr_pct == 0)
    {
        aux = 0;
        while (timp_dat[i] != ':' && i < lung)
       {
aux = aux * 10 + timp_dat[i] - '0';
i++;
       }
         i++;
         sec += aux;
         aux = 0;
     }
    min += sec / 60;
    sec = sec % 60;
    ora += min / 60;
    min = min % 60;
    zile = ora / 24;
    ora = ora % 24;
    if (ora >= 0 && ora <= 9)
       fprintf (g,"0%d:", ora);
    else
      fprintf (g,"%d:", ora);
    if (min >= 0 && min <=9)
      fprintf (g,"0%d:", min);
    else
      fprintf (g,"%d:", min);
    if (sec >= 0 && sec <= 9)
       fprintf (g,"0%d", sec);
    else
       fprintf (g,"%d", sec);
    if (zile > 0 )
       fprintf (g,"+%d", zile);
    fprintf (g,"\n");
    fclose(g);
    return 0;
}

Alte rezolvari ale problemei pot fi vizualizate facand click pe urmatorul link.

Etichete: .campionalgoritmicaC++informaticaONIprobleme de informatica

— Albulescu Cosmina a scris 223 articole

Nu există o descriere a autorului.

  • Articolul anterior Ministerul Educatiei din Taiwan pune e-readers in scoli
  • Articolul următor Google pregateste o noua interfata

  • Facebook

    WorldIT.info
  • Ultimele Atacuri Cibernetice din Romania – RO Hacked

    [wp_rss_retriever url="https://rohacked.bit-sentinel.com/feed/" excerpt="none" items="5" read_more="false" new_window="true" thumbnail="false" cache="0"] RO Hacked este registrul atacurilor cibernetice din România.
  • Caută

  • Articole Recomandate

    • Recent Posts
    • Tags
    • Număr record de participanți la DefCamp 2015, cel mai important eveniment dedicat securității cibernetice din Europe Centrala si de Estdecembrie 2, 2015
    • La DefCamp 2015 vei afla prin ce tehnici pot fi evitate măsurile de securitate ale sistemelor informatice criticeoctombrie 16, 2015
    • Ultima sansa sa rezervi bilete de tip Early Bird la DefCamp 2015septembrie 1, 2015
    • 15 sfaturi despre cum poti deveni un programator bun venite de la specialisti romaniaugust 4, 2015
    • algoritmica Android antivirus Apple Avadanei Andrei benzi desenate BitDefender blog browser C++ Chrome concurs eveniment Facebook Firefox Google google chrome hacking html5 infografic informatica internet Internet Explorer IT javascript linux Microsoft Mozilla Firefox online PHP programare retea sociala review Romania securitate Tehnologie Twitter web Windows Windows 7 Wordpress WorldIT worldit.info Yahoo! YouTube
  • februarie 2021
    L Ma Mi J V S D
    1234567
    891011121314
    15161718192021
    22232425262728
    « dec.    
  • Link-uri Sponsorizate

    • laptop second hand

    • Calculatoare Second Hand

    • cod voucher pc garage

  • Home
  • Tehnic
  • C/C++
  • Probleme algoritmică
  • Problema Timer .campion 2009
  • Important

    • Bit Sentinel
    • Centrul de Cercetare în Securitate Informatică din România
    • DefCamp
  • Prieteni

    • BetiT.ro
    • bijuterii handmade
    • Computerica | Resurse gratuite PC
    • Descopera.org
    • Gadgeturi si IT – Giz.ro
  • Prieteni

    • PC – Config
    • RO Hacked
    • Stiri IT

Copyright © 2009-2014 WORLDIT. Toate drepturile Rezervate.
Termeni și condiții | Contact | Licența Creative Commons