diff --git a/afisaj_gresit.c b/afisaj_gresit.c index d511e77..1bb8add 100644 --- a/afisaj_gresit.c +++ b/afisaj_gresit.c @@ -1,92 +1,94 @@ -#include -#include +#include +#include -int main() -{ - int i,v[7],n; - int seg[10][7] = { - {1,1,1,1,1,1,0}, - {0,1,1,0,0,0,0}, - {1,1,0,1,1,0,1}, - {1,1,1,1,0,0,1}, - {0,1,1,0,0,1,1}, - {1,0,1,1,0,1,1}, - {1,0,1,1,1,1,1}, - {1,1,1,0,0,0,0}, - {1,1,1,1,1,1,1}, - {1,1,1,1,0,1,1} - }; - - while(!feof(stdin)) - { - scanf("%d,%d,%d,%d,%d,%d,%d,%d\n", &v[0],&v[1],&v[2],&v[3],&v[4],&v[5],&v[6],&v[7]); - for(i=0;i<10;i++) - { - if ((seg[i][0]==v[0])&&(seg[i][1]==v[1])&&(seg[i][2]==v[2])&&(seg[i][3]==v[3])&&(seg[i][4]==v[4])&&(seg[i][5]==v[5])&&(seg[i][6]==v[6])) - { - switch (i) - { - case '0': - { if(v[7]==0) printf("0"); - else printf("0."); - break; - } - case '1': - { if(v[7]==0) printf("1"); - else printf("1."); - break; - } - case '2': - { if(v[7]==0) printf("2"); - else printf("2."); - break; - } - case '3': - { if(v[7]==0) printf("3"); - else printf("3."); - break; - } - case '4': - { if(v[7]==0) printf("4"); - else printf("4."); - break; - } - case '5': - { if(v[7]==0) printf("5"); - else printf("5."); - break; - } - case '6': - { if(v[7]==0) printf("6"); - else printf("6."); - break; - } - case '7': - { if(v[7]==0) printf("7"); - else printf("7."); - break; - } - case '8': - { if(v[7]==0) printf("8"); - else printf("8."); - break; - } - case '9': - { if(v[7]==0) printf("9"); - else printf("9."); - break; - } - } - - - - } - - - } - +int main() { + int i, v[7], n; + int seg[10][7] = {{1, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 0, 0, 0, 0}, + {1, 1, 0, 1, 1, 0, 1}, {1, 1, 1, 1, 0, 0, 1}, + {0, 1, 1, 0, 0, 1, 1}, {1, 0, 1, 1, 0, 1, 1}, + {1, 0, 1, 1, 1, 1, 1}, {1, 1, 1, 0, 0, 0, 0}, + {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 0, 1, 1}}; + + while (!feof(stdin)) { + scanf("%d,%d,%d,%d,%d,%d,%d,%d\n", &v[0], &v[1], &v[2], &v[3], &v[4], &v[5], + &v[6], &v[7]); + for (i = 0; i < 10; i++) { + if ((seg[i][0] == v[0]) && (seg[i][1] == v[1]) && (seg[i][2] == v[2]) && + (seg[i][3] == v[3]) && (seg[i][4] == v[4]) && (seg[i][5] == v[5]) && + (seg[i][6] == v[6])) { + switch (i) { + case '0': { + if (v[7] == 0) + printf("0"); + else + printf("0."); + break; + } + case '1': { + if (v[7] == 0) + printf("1"); + else + printf("1."); + break; + } + case '2': { + if (v[7] == 0) + printf("2"); + else + printf("2."); + break; + } + case '3': { + if (v[7] == 0) + printf("3"); + else + printf("3."); + break; + } + case '4': { + if (v[7] == 0) + printf("4"); + else + printf("4."); + break; + } + case '5': { + if (v[7] == 0) + printf("5"); + else + printf("5."); + break; + } + case '6': { + if (v[7] == 0) + printf("6"); + else + printf("6."); + break; + } + case '7': { + if (v[7] == 0) + printf("7"); + else + printf("7."); + break; + } + case '8': { + if (v[7] == 0) + printf("8"); + else + printf("8."); + break; + } + case '9': { + if (v[7] == 0) + printf("9"); + else + printf("9."); + break; + } + } + } } - - - + } } diff --git a/aranjamente_produse.c b/aranjamente_produse.c index 2e52916..aded852 100644 --- a/aranjamente_produse.c +++ b/aranjamente_produse.c @@ -1,24 +1,23 @@ -#include +#include -int main() -{ - int i,k,n, ok=0; - unsigned M; - unsigned long long a; - scanf("%d %d\n", &k, &M); - n=k; - do { - a=1; - for(i=n-k+1;i -#include +#include +#include -int main() -{ - int m, n, p, i, j, v[1000], nr_soldati; - - scanf("%d %d %d\n", &m, &n, &p); - - for(i = 1; i <=n; i++ ) v[i] = 1;// niciun soldat nu a fost eliminat - nr_soldati = n; - while( nr_soldati > 1 )//au ramas mai mult de 1 soldat - { - for( i = 1; i <= m; i++) - { - while( v[p] == 0)//daca soldatul de la pozitia curenta a fost numarat, il sar - - { //trec la urmatorul soldat disponibil, pe care il tot caut adaugand 1 - if( p < n) - p++; - else p = 1; - } - if( p < n) - p++; - else p = 1; - } - if( p == 1) - v[n] = 0; - else v[p-1] = 0; - nr_soldati = nr_soldati - 1; //cati soldati au ramas - } - - for(i = 1; i <=n; i++ ) - { - if(v[i] == 1) - break; - } - printf("%d\n", i); - +int main() { + int m, n, p, i, j, v[1000], nr_soldati; + + scanf("%d %d %d\n", &m, &n, &p); + + for (i = 1; i <= n; i++) + v[i] = 1; // niciun soldat nu a fost eliminat + nr_soldati = n; + while (nr_soldati > 1) // au ramas mai mult de 1 soldat + { + for (i = 1; i <= m; i++) { + while (v[p] == + 0) // daca soldatul de la pozitia curenta a fost numarat, il sar - + { // trec la urmatorul soldat disponibil, pe care il tot caut adaugand 1 + if (p < n) + p++; + else + p = 1; + } + if (p < n) + p++; + else + p = 1; + } + if (p == 1) + v[n] = 0; + else + v[p - 1] = 0; + nr_soldati = nr_soldati - 1; // cati soldati au ramas + } + + for (i = 1; i <= n; i++) { + if (v[i] == 1) + break; + } + printf("%d\n", i); } diff --git a/batalia_cosmica.c b/batalia_cosmica.c index 6e281df..024bc5a 100644 --- a/batalia_cosmica.c +++ b/batalia_cosmica.c @@ -1,39 +1,35 @@ -#include +#include int main() - { - int n, i, j,scut, fazer, ps, pf, c = 0; - scanf("%d %d\n", &ps, &pf); - scanf("%d\n", &n); - scut = ps; - fazer = pf; - struct tip { - int ps; - int pf; - }; - struct tip nava[n]; - for ( i = 0; i < n; i++) - { - scanf("%d %d\n", &nava[i].ps, &nava[i].pf); + int n, i, j, scut, fazer, ps, pf, c = 0; + scanf("%d %d\n", &ps, &pf); + scanf("%d\n", &n); + scut = ps; + fazer = pf; + struct tip { + int ps; + int pf; + }; + struct tip nava[n]; + for (i = 0; i < n; i++) { + scanf("%d %d\n", &nava[i].ps, &nava[i].pf); + } + + for (i = 0; i < n; i++) { + ps = scut; + pf = fazer; + while (nava[i].ps >= 0) // sau sterg else-ul dar conditia devine + // while((nava[i].ps >= 0) && (ps >= 0)) + { // sa stie ce sa faca daca nava mea moare!! + ps = ps - nava[i].pf; + if (ps >= 0) + nava[i].ps = nava[i].ps - pf; + else + break; } - - for ( i = 0; i < n; i++) - { - ps = scut; - pf = fazer; - while(nava[i].ps >= 0) //sau sterg else-ul dar conditia devine while((nava[i].ps >= 0) && (ps >= 0)) - { //sa stie ce sa faca daca nava mea moare!! - ps = ps - nava[i].pf; - if (ps >= 0) - nava[i].ps = nava[i].ps - pf; - else break; - } - if ((nava[i].ps < 0) && (ps>=0)) c++; - } - printf("%d\n", c); - - - - + if ((nava[i].ps < 0) && (ps >= 0)) + c++; + } + printf("%d\n", c); } diff --git a/bingo.c b/bingo.c index b61f89a..40d7f1d 100644 --- a/bingo.c +++ b/bingo.c @@ -1,34 +1,27 @@ -#include +#include -int main() -{ - int n,k,nr,i,j,c=0; - scanf("%d%d",&n,&k); - int v[n*n]; - for(i=0;i -#include +#include +#include int main() { - int n,i,j; - long long int nr; - scanf("%d\n", &n); - int v[20]; - for (i=0;i<20;i++) - v[i]=0; - - for (i=0;i=0 && (nr<=9)) - v[0] = v[0]+1; - for(j=1;j<=19;j++) - { - if(nr>=pow(10,j) && (nr<=pow(10,j+1)-1)) - { - v[j]=v[j]+1; - break; - } - } - - - } - - for (i=0;i<=19;i++) - { - if(v[i]!=0) - printf("%d %d ", i+1, v[i]); + int n, i, j; + long long int nr; + scanf("%d\n", &n); + int v[20]; + for (i = 0; i < 20; i++) + v[i] = 0; + + for (i = 0; i < n; i++) { + scanf("%lld ", &nr); + if (nr >= 0 && (nr <= 9)) + v[0] = v[0] + 1; + for (j = 1; j <= 19; j++) { + if (nr >= pow(10, j) && (nr <= pow(10, j + 1) - 1)) { + v[j] = v[j] + 1; + break; + } } - - + } + + for (i = 0; i <= 19; i++) { + if (v[i] != 0) + printf("%d %d ", i + 1, v[i]); + } } diff --git a/campionat.c b/campionat.c index 2c76bc5..0dd26cc 100644 --- a/campionat.c +++ b/campionat.c @@ -1,96 +1,83 @@ -#include -#include -#include +#include +#include +#include -//DE VERIFICAT ALGORITMII...CAND SE INCHEIE FOR-URI, IF-URI!!! -int main() -{ - int k,n,i,j,gol1,gol2,ok1,ok2,nr=0; - char ech1[50],ech2[50]; - scanf("%d\n", &k); - scanf("%d\n", &n); - struct forma { - char nume[50]; - int puncte,date,primite; - }; - - struct forma echipe[k], temp; - - for(i=0;igol2) echipe[j].puncte+=3; - } - if(strcmp(ech2, echipe[j].nume) == 0) - { - echipe[j].date+=gol2; - echipe[j].primite+=gol1; - if(gol1==gol2) echipe[j].puncte+=1; - else if(gol1 gol2) + echipe[j].puncte += 3; + } + if (strcmp(ech2, echipe[j].nume) == 0) { + echipe[j].date += gol2; + echipe[j].primite += gol1; + if (gol1 == gol2) + echipe[j].puncte += 1; + else if (gol1 < gol2) + echipe[j].puncte += 3; + } + } + } + + for (j = 0; j < k - 1; j++) { + for (i = j + 1; i < k; i++) { + if (echipe[j].puncte < echipe[i].puncte) { + temp = echipe[j]; + echipe[j] = echipe[i]; + echipe[i] = temp; + } + } + } + + for (j = 0; j < k; j++) { + printf("%s %d %d %d\n", echipe[j].nume, echipe[j].puncte, echipe[j].date, + echipe[j].primite); + } } diff --git a/cautare_binara.c b/cautare_binara.c index 518d543..235e057 100644 --- a/cautare_binara.c +++ b/cautare_binara.c @@ -1,59 +1,53 @@ -#include -#include +#include +#include -int main() -{ - int n,i,x,aux,j,st,dr,gasit=0, mij; - scanf("%d\n",&n); - int v[100]; - for(i=0;iv[j]) - { - aux=v[i]; - v[i]=v[j]; - v[j]=aux; - - } +int main() { + int n, i, x, aux, j, st, dr, gasit = 0, mij; + scanf("%d\n", &n); + int v[100]; + for (i = 0; i < n; i++) + scanf("%d\n", &v[i]); + scanf("%d\n", &x); + for (i = 0; i < n - 1; i++) + for (j = i + 1; j < n; j++) { + if (v[i] > v[j]) { + aux = v[i]; + v[i] = v[j]; + v[j] = aux; + } } - - st=0; - dr=n-1; - while(dr - st > 0){ - - mij=(int)((st+dr)/2); - - if(v[mij]==x) - { - printf("%d \n",v[mij]); - return 0; + + st = 0; + dr = n - 1; + while (dr - st > 0) { + + mij = (int)((st + dr) / 2); + + if (v[mij] == x) { + printf("%d \n", v[mij]); + return 0; + } else { + printf("%d \n", v[mij]); + if (v[mij] > x) { + if ((dr - mij) % 2 == 0) { + dr = mij; + } else { + dr = mij - 1; } - else - { printf("%d \n",v[mij]); - if(v[mij]>x) - { - if((dr-mij)%2==0){ - dr=mij;} - else - { dr=mij-1;} - } - if(v[mij] -#include +#include +#include -int main() -{ - int n,i; - struct forma { - char nume[11] ; - float d1; - float d2; - }; - - struct forma a,b; - float max; - - scanf("%d\n", &n); - scanf("%s %f %f\n", a.nume, &a.d1, &a.d2); - //pot initializa max cu 1 si sa sar de aceasta initializare, sa incep mai jos for-ul de la 0 - if(strcmp(a.nume, "dreptunghi") == 0) max = a.d1*a.d2; - else if (strcmp(a.nume, "patrat") == 0) max = a.d1*a.d1; - else max = a.d1*a.d1*3.14; - - for(i=1; i +#include -int main() -{ - int n,i, j=1,max=1; - scanf("%d\n",&n); - int arie[n]; - - struct caracteristici { - char nume[20]; - int x1; - int y1; - int x2; - int y2; - }; - - struct caracteristici forma[n]; - for(i=0;i=max) - { - max = arie[i]; - j=i; - } - } - - printf("%s %d %d %d %d %d\n", forma[j].nume, forma[j].x1, forma[j].y1, forma[j].x2, forma[j].y2, arie[j]); - //daca las if(arie>max), in cazul in care max e chiar arie[0], nu va intra niciodata in bucla if, deci nu se va face - // i=j si nu returneaza nimic. - +int main() { + int n, i, j = 1, max = 1; + scanf("%d\n", &n); + int arie[n]; + + struct caracteristici { + char nume[20]; + int x1; + int y1; + int x2; + int y2; + }; + + struct caracteristici forma[n]; + for (i = 0; i < n; i++) { + arie[i] = 1; + scanf("%s %d %d %d %d\n", forma[i].nume, &forma[i].x1, &forma[i].y1, + &forma[i].x2, &forma[i].y2); + arie[i] = (forma[i].x2 - forma[i].x1) * (forma[i].y2 - forma[i].y1); + } + max = arie[0]; + for (i = 0; i < n; i++) { + if (arie[i] >= max) { + max = arie[i]; + j = i; + } + } + + printf("%s %d %d %d %d %d\n", forma[j].nume, forma[j].x1, forma[j].y1, + forma[j].x2, forma[j].y2, arie[j]); + // daca las if(arie>max), in cazul in care max e chiar arie[0], nu va intra + // niciodata in bucla if, deci nu se va face + // i=j si nu returneaza nimic. } diff --git a/cifru_substitutie.c b/cifru_substitutie.c index cea550c..eaa4542 100644 --- a/cifru_substitutie.c +++ b/cifru_substitutie.c @@ -1,38 +1,33 @@ -#include -#include -#include +#include +#include +#include -int main() -{ - #define N 1001 - int i,j; - char text[N+1]; - //NU FOLOSESC SIZEOF!!! DEFINESC N!!FARA VIRGULA SI FARA EGAL!!! - struct cifru { - char vechi; - char nou; - }; - struct cifru c[62]; - fgets(text, N, stdin); - - for(i=0;i<62;i++) - { - scanf("%c,%c ", &c[i].vechi, &c[i].nou); - } - - for(j=0;j -#include -#include +#include +#include +#include -int main() -{ - int n,i,x,dimensiune=0,max = 0,rest=0 ; - - struct tip { - int nr; - int zerouri; - }; - - struct tip nr[20]; - - scanf("%d\n", &n); - - for(i=0;i 0 ) - { - - rest = x%2; - x = x/2; - dimensiune +=1; - if(rest == 0) nr[i].zerouri +=1; - - } - nr[i].zerouri = nr[i].zerouri + (8 - dimensiune); - } - } - max = nr[0].zerouri; - for(i=1;imax) - { - max = nr[i].zerouri; - } - } - for(i=0;i 0) { + + rest = x % 2; + x = x / 2; + dimensiune += 1; + if (rest == 0) + nr[i].zerouri += 1; + } + nr[i].zerouri = nr[i].zerouri + (8 - dimensiune); + } + } + max = nr[0].zerouri; + for (i = 1; i < n; i++) { + if (nr[i].zerouri > max) { + max = nr[i].zerouri; + } + } + for (i = 0; i < n; i++) { + if (nr[i].zerouri == max) { + printf("%d\n", nr[i].nr); + } + } } diff --git a/codare.c b/codare.c index fc168fe..114e998 100644 --- a/codare.c +++ b/codare.c @@ -1,28 +1,23 @@ -#include +#include -int main() -{ - int n,i,j,max=0, sum=0; - int v[7]; - scanf("%d\n", &n); - while(n--) - { - scanf("%d %d %d %d %d %d %d\n", &v[1],&v[0],&v[3],&v[2],&v[5],&v[4],&v[6]); - sum = v[0]; - for(j=1;j<=6;j++) - { - v[j] = (v[j]%2); - sum = sum + v[j]; - } - if(max<=sum) - { - max = sum; - } - +int main() { + int n, i, j, max = 0, sum = 0; + int v[7]; + scanf("%d\n", &n); + while (n--) { + scanf("%d %d %d %d %d %d %d\n", &v[1], &v[0], &v[3], &v[2], &v[5], &v[4], + &v[6]); + sum = v[0]; + for (j = 1; j <= 6; j++) { + v[j] = (v[j] % 2); + sum = sum + v[j]; } - - printf("%d\n", max); - + if (max <= sum) { + max = sum; + } + } + + printf("%d\n", max); } -//ATENTIE IN FOR-URI PANA LA CINE MERG!!!!! DACA E < SAU <= SI DACA MERG PANA LA VARIABILA CARE TREBUIE, NU PANA LA NR DE LINII -//SAU ALTCEVA!! +// ATENTIE IN FOR-URI PANA LA CINE MERG!!!!! DACA E < SAU <= SI DACA MERG PANA +// LA VARIABILA CARE TREBUIE, NU PANA LA NR DE LINII SAU ALTCEVA!! diff --git a/codare_semnal_imagine.c b/codare_semnal_imagine.c index 37b1a82..68de97f 100644 --- a/codare_semnal_imagine.c +++ b/codare_semnal_imagine.c @@ -1,45 +1,36 @@ -#include -#include +#include +#include -int main() -{ - int m, i, j, n,k, nr = 0, temp, dim_v1, dim_v2, nr_dif=0, rez = 0; - scanf("%d\n", &m); - scanf("%d\n", &n); - int a[m][n], v2[20]; - - for ( i = 0; i < m; i++) - { - for ( j = 0; j < n; j++) - { - scanf("%d ", &a[i][j]); - } - } - dim_v1 = m*n; - //dim lui v1 la fi mereu = m*n - //dim lui v2 va fi = nr de elemente diferite ale matricei A*2 (nr de aparitii pt fiecare) - //aflu cate nr diferite sunt in MATRICE - for ( k = 0; k < 20; k++) - { - v2[k] = 0; - for ( i = 0; i < m; i++) - { - for ( j = 0; j < n; j++) - { - if(a[i][j] == k) - v2[k]++; - - } - } +int main() { + int m, i, j, n, k, nr = 0, temp, dim_v1, dim_v2, nr_dif = 0, rez = 0; + scanf("%d\n", &m); + scanf("%d\n", &n); + int a[m][n], v2[20]; + + for (i = 0; i < m; i++) { + for (j = 0; j < n; j++) { + scanf("%d ", &a[i][j]); + } + } + dim_v1 = m * n; + // dim lui v1 la fi mereu = m*n + // dim lui v2 va fi = nr de elemente diferite ale matricei A*2 (nr de aparitii + // pt fiecare) aflu cate nr diferite sunt in MATRICE + for (k = 0; k < 20; k++) { + v2[k] = 0; + for (i = 0; i < m; i++) { + for (j = 0; j < n; j++) { + if (a[i][j] == k) + v2[k]++; + } } - - for ( k = 0; k < 20; k++) - { - if (v2[k]!=0) - nr_dif++; - } - dim_v2 = nr_dif*2; - rez = dim_v1 - dim_v2; - printf("%d\n", rez); - + } + + for (k = 0; k < 20; k++) { + if (v2[k] != 0) + nr_dif++; + } + dim_v2 = nr_dif * 2; + rez = dim_v1 - dim_v2; + printf("%d\n", rez); } diff --git a/combinari_rezistoare.c b/combinari_rezistoare.c index 16337d8..73cf0e5 100644 --- a/combinari_rezistoare.c +++ b/combinari_rezistoare.c @@ -1,35 +1,33 @@ -#include +#include int main() { - int n,k,i,j,ok; - unsigned M; - long double a=1,b=1; - //de ce merge doar cu long double??? - - scanf("%d %d", &n,&M); - - k=1; - ok=0; - - do{ - a=1; - b=1; - for(i=n-k+1;i=M) - ok=1; - - } while (a/b= M) + ok = 1; + } while (a / b < M); + + if (ok == 0) + printf("0"); + else + printf("%d", k - 1); +} diff --git a/concert.c b/concert.c index fa90e6b..2be741c 100644 --- a/concert.c +++ b/concert.c @@ -1,61 +1,52 @@ -#include -#include -#include +#include +#include +#include -//DE INTREBAT PE VLAD -int main() -{ - int n, i, j, zi_in, luna_in, zi_sf, luna_sf, index, min_initializat = 0, z; - float pb = 0, cm = 0, min, pret = 0; - scanf("%d %f %f\n", &n, &pb, &cm); - scanf("%d %d %d %d\n", &zi_in, &luna_in, &zi_sf, &luna_sf); - struct tip { - char oras [20]; - int zi, luna, pret_bilet, distanta; - }; - struct tip concert[n]; - z = n; - - for( i = 0; i < n; i++) - { - scanf ("%s %d %d %d %d\n", concert[i].oras, &concert[i].zi, &concert[i].luna, &concert[i].pret_bilet, &concert[i].distanta ); - } - while(z--) - { - - if (min_initializat == 0) - { - for( i = 0; i < n; i++) - { - if ( (concert[i].luna < luna_in) || (concert[i].luna > luna_sf) || ((concert[i].luna == luna_in) && ((concert[i].zi < zi_in) || (concert[i].zi > zi_sf)))) - { - min = 2*concert[i].distanta*pb*cm/3 + concert[i].pret_bilet; - index = i; - min_initializat = 1; - break; - } - } - } - else - { - for( i = 0; i < n; i++) - { - if ( (concert[i].luna < luna_in) || (concert[i].luna > luna_sf) || ((concert[i].luna == luna_in) && ((concert[i].zi < zi_in) || (concert[i].zi > zi_sf)))) - { - pret = 2*concert[i].distanta*pb*cm/3 + concert[i].pret_bilet;; - if (pret < min) - { - min = pret; - index = i; - } - } - } - } - +// DE INTREBAT PE VLAD +int main() { + int n, i, j, zi_in, luna_in, zi_sf, luna_sf, index, min_initializat = 0, z; + float pb = 0, cm = 0, min, pret = 0; + scanf("%d %f %f\n", &n, &pb, &cm); + scanf("%d %d %d %d\n", &zi_in, &luna_in, &zi_sf, &luna_sf); + struct tip { + char oras[20]; + int zi, luna, pret_bilet, distanta; + }; + struct tip concert[n]; + z = n; + + for (i = 0; i < n; i++) { + scanf("%s %d %d %d %d\n", concert[i].oras, &concert[i].zi, &concert[i].luna, + &concert[i].pret_bilet, &concert[i].distanta); + } + while (z--) { + + if (min_initializat == 0) { + for (i = 0; i < n; i++) { + if ((concert[i].luna < luna_in) || (concert[i].luna > luna_sf) || + ((concert[i].luna == luna_in) && + ((concert[i].zi < zi_in) || (concert[i].zi > zi_sf)))) { + min = 2 * concert[i].distanta * pb * cm / 3 + concert[i].pret_bilet; + index = i; + min_initializat = 1; + break; + } + } + } else { + for (i = 0; i < n; i++) { + if ((concert[i].luna < luna_in) || (concert[i].luna > luna_sf) || + ((concert[i].luna == luna_in) && + ((concert[i].zi < zi_in) || (concert[i].zi > zi_sf)))) { + pret = 2 * concert[i].distanta * pb * cm / 3 + concert[i].pret_bilet; + ; + if (pret < min) { + min = pret; + index = i; + } + } + } } - - printf("%s %.2f\n", concert[index].oras, min); - - - + } + + printf("%s %.2f\n", concert[index].oras, min); } diff --git a/controlor_de_trafic.c b/controlor_de_trafic.c index 06f3887..cf39b73 100644 --- a/controlor_de_trafic.c +++ b/controlor_de_trafic.c @@ -1,29 +1,22 @@ -#include -#include +#include +#include -int main() -{ - int i=0,j,ok=0; - unsigned n, sum=0,nr; - scanf("%d", &n); - unsigned v[n+1]; - +int main() { + int i = 0, j, ok = 0; + unsigned n, sum = 0, nr; + scanf("%d", &n); + unsigned v[n + 1]; - for(i=0;i<=n+1;i++) - { - v[i] = 0; - - } - while(scanf("%d ",&nr)==1) - { - v[nr]=1; - } - for(i=0;i -#include -#include +#include +#include +#include #define N 5120 -int main() -{ - int i,j,n; - char s[N+1],nep[N+1]; - char *p; - - - fgets(s, N, stdin); - s[N]='\0'; - if(s[strlen(s)-1]=='\n') - { - s[strlen(s)-1] = '\0'; - } - scanf("%d\n", &n); - for(i=0;i -#include -#include -//PT MODULUL UNUI NR REAL SE FOLOSESTE FABS, NU ABS!!!! -int main() -{ - int n,i,j, ok=0; - float d,d_local,z; - struct tip { - float x; - float y; - }; - scanf("%d\n", &n); - struct tip valori[n]; - for(i=0;i 0.0001) - { - printf("nu"); - exit(0); - - } - } - - - printf("da"); - +#include +#include +#include +// PT MODULUL UNUI NR REAL SE FOLOSESTE FABS, NU ABS!!!! +int main() { + int n, i, j, ok = 0; + float d, d_local, z; + struct tip { + float x; + float y; + }; + scanf("%d\n", &n); + struct tip valori[n]; + for (i = 0; i < n; i++) { + scanf("%f %f\n", &valori[i].x, &valori[i].y); + } + d = sqrt(pow((valori[n - 1].x - valori[0].x), 2) + + pow((valori[n - 1].y - valori[0].y), 2)); + + for (i = 0; i < n - 1; i++) { + d_local = sqrt(pow((valori[i + 1].x - valori[i].x), 2) + + pow((valori[i + 1].y - valori[i].y), 2)); + z = fabs(1 - (d / d_local)); + if (z > 0.0001) { + printf("nu"); + exit(0); + } + } + + printf("da"); } diff --git a/fructe.c b/fructe.c index f603399..45ffa09 100644 --- a/fructe.c +++ b/fructe.c @@ -1,35 +1,32 @@ -#include -#include -#include +#include +#include +#include -int main() -{ - int n, k, i, j, m, r, g, b, min, min_initializat, d, index; - scanf("%d %d %d %d %d %d\n", &n, &k, &m, &r, &g, &b); - struct tip { - int tip, m, r, g, b; - }; - struct tip fruct[1000]; - min_initializat = 0; - for( i = 0; i < n; i++) - { - - scanf("%d %d %d %d %d\n", &fruct[i].tip, &fruct[i].m, &fruct[i].r, &fruct[i].g, &fruct[i].b); - d = sqrt( pow(( m - fruct[i].m),2) + pow(( r - fruct[i].r),2) + pow(( g - fruct[i].g),2) + pow(( b - fruct[i].b),2)); - if (min_initializat==0) - { - min = d; - index = i; - min_initializat = 1; - } - else{ - if ( d < min) - { - min = d; - index = i; - } - } - } - - printf("%d\n", fruct[index].tip); +int main() { + int n, k, i, j, m, r, g, b, min, min_initializat, d, index; + scanf("%d %d %d %d %d %d\n", &n, &k, &m, &r, &g, &b); + struct tip { + int tip, m, r, g, b; + }; + struct tip fruct[1000]; + min_initializat = 0; + for (i = 0; i < n; i++) { + + scanf("%d %d %d %d %d\n", &fruct[i].tip, &fruct[i].m, &fruct[i].r, + &fruct[i].g, &fruct[i].b); + d = sqrt(pow((m - fruct[i].m), 2) + pow((r - fruct[i].r), 2) + + pow((g - fruct[i].g), 2) + pow((b - fruct[i].b), 2)); + if (min_initializat == 0) { + min = d; + index = i; + min_initializat = 1; + } else { + if (d < min) { + min = d; + index = i; + } + } + } + + printf("%d\n", fruct[index].tip); } diff --git a/histograma.c b/histograma.c index fb8e437..758cad9 100644 --- a/histograma.c +++ b/histograma.c @@ -1,69 +1,60 @@ -#include -#include -#include -#include +#include +#include +#include +#include int main() - { - #define N 1000 - char s[N+2]; - char *p; - int i,j, ok=0, nr=0; - struct tip { - char cuv[N+1]; - int ap; - }; - - struct tip lista[N], temp; - fgets(s, sizeof(s), stdin); //IAU TOT TEXTUL!!!!!! - s[strlen(s)-1] = '\0'; //IMPORTANT!! - - for(i=0;ilista[i].ap) || ((lista[j].ap==lista[i].ap)&&(strcmp(lista[i].cuv,lista[j].cuv)>0))) - { - temp = lista[i]; - lista[i] = lista[j]; - lista[j] = temp; - } - } - } - - for(i=0;i lista[i].ap) || + ((lista[j].ap == lista[i].ap) && + (strcmp(lista[i].cuv, lista[j].cuv) > 0))) { + temp = lista[i]; + lista[i] = lista[j]; + lista[j] = temp; + } + } + } + + for (i = 0; i < nr; i++) { + printf("%s %d\n", lista[i].cuv, lista[i].ap); + } + // NU A MERS CU S[1001], TREBUIE S[1002]!!!! } diff --git a/imagine_mediana.c b/imagine_mediana.c index 653d3e9..9d3f802 100644 --- a/imagine_mediana.c +++ b/imagine_mediana.c @@ -1,53 +1,48 @@ - #include - #include - - int main() - { - int m, n, i, j, k, s, temp; - scanf("%d\n", &m); - scanf("%d\n", &n);// nr linii/coloane matrice initiala - int a[m][n],b[m+2][n+2],v[5]; - for (i = 0; i < m; i++) - { - for ( j = 0; j < n; j++) - scanf("%d\n", &a[i][j]); +#include +#include + +int main() { + int m, n, i, j, k, s, temp; + scanf("%d\n", &m); + scanf("%d\n", &n); // nr linii/coloane matrice initiala + int a[m][n], b[m + 2][n + 2], v[5]; + for (i = 0; i < m; i++) { + for (j = 0; j < n; j++) + scanf("%d\n", &a[i][j]); + } + for (i = 0; i < m + 2; i++) + for (j = 0; j < n + 2; j++) // folosesc o alta matrice cu 2 linii si + b[i][j] = 0; // 2 coloane mai mult si initializez totul cu 0 + + for (i = 1; i < m + 2 - 1; i++) + for (j = 1; j < n + 2 - 1; j++) + b[i][j] = a[i - 1][j - 1]; // copiez matricea initiala in matricea mai + // mare, si acum voi avea de fapt + // matricea initiala bordata cu zerouri + for (i = 1; i < m + 2 - 1; i++) { + for (j = 1; j < n + 2 - 1; j++) { + v[0] = b[i - 1][j]; // pentru fiecare valoare !=0 din matricea mare, iau + // valoarea si vecinii + v[1] = b[i][j - 1]; + v[2] = b[i][j]; + v[3] = b[i][j + 1]; + v[4] = b[i + 1][j]; + for (k = 0; k < 4; k++) { + for (s = k + 1; s < 5; s++) { + if (v[k] > v[s]) { + temp = v[s]; + v[s] = v[k]; + v[k] = temp; // ordonez crescator si iau mijlocul - pe care il + // salvez in prima matrice, nu + } // modific matricea in care lucrez pentru ca mai am nevoie de + // valori, vor mai fi vecini pt alt elemente } - for (i = 0; i < m+2; i++) - for ( j = 0; j < n+2; j++)// folosesc o alta matrice cu 2 linii si - b[i][j] = 0; // 2 coloane mai mult si initializez totul cu 0 - - for (i = 1; i < m+2-1; i++) - for ( j = 1; j < n+2-1; j++) - b[i][j] = a[i-1][j-1]; //copiez matricea initiala in matricea mai mare, si acum voi avea de fapt - // matricea initiala bordata cu zerouri - for (i = 1; i < m+2-1; i++) - { - for ( j = 1; j < n+2-1; j++) - { - v[0] = b[i-1][j]; // pentru fiecare valoare !=0 din matricea mare, iau valoarea si vecinii - v[1] = b[i][j-1]; - v[2] = b[i][j]; - v[3] = b[i][j+1]; - v[4] = b[i+1][j]; - for (k = 0; k < 4; k++) - { - for (s = k+1; s < 5; s++) - { - if (v[k] > v[s]) - { - temp = v[s]; - v[s] = v[k]; - v[k] = temp;// ordonez crescator si iau mijlocul - pe care il salvez in prima matrice, nu - } //modific matricea in care lucrez pentru ca mai am nevoie de valori, vor mai fi vecini pt alt elemente - } - } - a[i-1][j-1] = v[2]; - } - } - for (i = 0; i < m; i++) - { - for ( j = 0; j < n; j++) - printf("%d\n", a[i][j]); - } - + } + a[i - 1][j - 1] = v[2]; + } + } + for (i = 0; i < m; i++) { + for (j = 0; j < n; j++) + printf("%d\n", a[i][j]); + } } diff --git a/imagini_prime.c b/imagini_prime.c index d03e8f2..eb6474f 100644 --- a/imagini_prime.c +++ b/imagini_prime.c @@ -1,29 +1,24 @@ -#include +#include int main() { - int a,b,i,x,k,s=0; - scanf("%d\n",&a); - scanf("%d\n",&b); - - for(i=0;i -#include +#include +#include int main() { - int m,n,i,j,sum=0; - float var=0, media=0; - scanf("%d\n",&m); - scanf("%d\n",&n); - float v[100][100]; - - for (i=0;i -#include -#include -#include +#include +#include +#include +#include -int main() -{ - - char alfa, beta, nume[4001]; - int m,n,mic=0,mijloc=0,mare=0,l=0; - - scanf("%c %c %d %d\n", &alfa, &beta, &m, &n); - alfa = toupper(alfa); - beta = toupper(beta); - while(!feof(stdin)) - { - scanf("%s\n", nume); - l = strlen(nume); - if(toupper((nume[0])==alfa) && (toupper(nume[l-1])==beta)) - { - if(l=m)&&(l=n) mare++; - } - } - printf("%d %d %d\n", mic, mijloc, mare); +int main() { + + char alfa, beta, nume[4001]; + int m, n, mic = 0, mijloc = 0, mare = 0, l = 0; + + scanf("%c %c %d %d\n", &alfa, &beta, &m, &n); + alfa = toupper(alfa); + beta = toupper(beta); + while (!feof(stdin)) { + scanf("%s\n", nume); + l = strlen(nume); + if (toupper((nume[0]) == alfa) && (toupper(nume[l - 1]) == beta)) { + if (l < m) + mic++; + if ((l >= m) && (l < n)) + mijloc++; + if (l >= n) + mare++; + } + } + printf("%d %d %d\n", mic, mijloc, mare); } diff --git a/load_balancing.c b/load_balancing.c index 1498e91..e5f2454 100644 --- a/load_balancing.c +++ b/load_balancing.c @@ -1,26 +1,18 @@ -#include -#include +#include +#include -int main() -{ - unsigned short int k,n; - unsigned int v[65535]; - int i,j; - - scanf("%hu %hu\n", &k, &n); - for(i=0;i -#include +#include +#include int n; +int main() { -int main() -{ - - - int i, k, min, min_initializat=0; - scanf("%d %d\n", &n, &k); - int p, v, timp[n]; - - for(i=0;i<=n;i++) - { - scanf("%d %d\n", &p, &v); - timp[i] = (n-p)/v; - if (min_initializat == 0) - { - min = timp[i]; - min_initializat=1; - } - if(min>timp[i]) - { - min = timp[i]; - } - } - for(i=0;i<=n;i++) - { - if(timp[i]==min) - { - printf("%d ", i+1); - } - } + int i, k, min, min_initializat = 0; + scanf("%d %d\n", &n, &k); + int p, v, timp[n]; + + for (i = 0; i <= n; i++) { + scanf("%d %d\n", &p, &v); + timp[i] = (n - p) / v; + if (min_initializat == 0) { + min = timp[i]; + min_initializat = 1; + } + if (min > timp[i]) { + min = timp[i]; + } + } + for (i = 0; i <= n; i++) { + if (timp[i] == min) { + printf("%d ", i + 1); + } + } } diff --git a/maximele_semnalului.c b/maximele_semnalului.c index 5e643d3..1f65d1f 100644 --- a/maximele_semnalului.c +++ b/maximele_semnalului.c @@ -1,39 +1,32 @@ -#include +#include -int main() -{ - int n, i, val_max = 0, nr_mai_mari = 0; - float v[200], suma = 0, media; - - scanf("%d\n", &n); - for( i = 0; i < n; i++) - { - scanf("%f\n", &v[i]); - } - if ( (v[0] > 0) && (v[0] > v[1]) ) - { - nr_mai_mari++; - suma = suma + v[0]; - } - - if ( (v[n-1] > 0) && (v[n-1] > v[n-2])) - { - nr_mai_mari++; - suma = suma + v[n-1]; - } - for( i = 1; i < n-1; i++) - { - if ((v[i] > v[i-1]) && (v[i] > v[i+1])) - { - nr_mai_mari++; - suma = suma + v[i]; - } - } - media = (float) suma / nr_mai_mari; - for( i = 0; i < n; i++) - { - if(v[i] > media) - val_max++; - } - printf("%d\n", val_max); +int main() { + int n, i, val_max = 0, nr_mai_mari = 0; + float v[200], suma = 0, media; + + scanf("%d\n", &n); + for (i = 0; i < n; i++) { + scanf("%f\n", &v[i]); + } + if ((v[0] > 0) && (v[0] > v[1])) { + nr_mai_mari++; + suma = suma + v[0]; + } + + if ((v[n - 1] > 0) && (v[n - 1] > v[n - 2])) { + nr_mai_mari++; + suma = suma + v[n - 1]; + } + for (i = 1; i < n - 1; i++) { + if ((v[i] > v[i - 1]) && (v[i] > v[i + 1])) { + nr_mai_mari++; + suma = suma + v[i]; + } + } + media = (float)suma / nr_mai_mari; + for (i = 0; i < n; i++) { + if (v[i] > media) + val_max++; + } + printf("%d\n", val_max); } diff --git a/nava_cosmica.c b/nava_cosmica.c index a39c519..32127ba 100644 --- a/nava_cosmica.c +++ b/nava_cosmica.c @@ -1,55 +1,49 @@ -#include -#include -#include +#include +#include +#include - -int main() -{ - int n,i,j, min_initializat = 0, index, z; - double d_x, d_y, d_z, min, sum; - struct tip { double x, y, z, d; - int vizitat; }; - struct tip coord[100], pozitie; - scanf("%d\n", &n); - for( i = 0; i < n; i++) - { - scanf("%lf %lf %lf\n", &coord[i].x, &coord[i].y, &coord[i].z); - coord[i].vizitat = 0; - } - scanf("%lf %lf %lf\n", &p.x, &p.y, &p.z); - z = n; ///folosesc o alta variabila, nu tot n!!pentru ca mai jos cand inru in for, n nu va mai fi - while(z--) //acelasi si for-ul nu mai cauta peste tot!!! - { - min_initializat = 0; - for( i = 0; i < n; i++) - { - if ( coord[i].vizitat == 0 ) - { - d_x = pow((p.x - coord[i].x),2); - d_y = pow((p.y - coord[i].y),2); - d_z = pow((p.z - coord[i].z),2); - coord[i].d = sqrt( d_x + d_y + d_z ); - if ( min_initializat == 0 ) - { - min = coord[i].d; - min_initializat = 1; - index = i; - } - else - { - if ( min > coord[i].d ) - { - min = coord[i].d; - index = i; - } - } - } - } - sum = sum + min; - p.x = coord[index].x; - p.y = coord[index].y; - p.z = coord[index].z; - coord[index].vizitat = 1; +int main() { + int n, i, j, min_initializat = 0, index, z; + double d_x, d_y, d_z, min, sum; + struct tip { + double x, y, z, d; + int vizitat; + }; + struct tip coord[100], pozitie; + scanf("%d\n", &n); + for (i = 0; i < n; i++) { + scanf("%lf %lf %lf\n", &coord[i].x, &coord[i].y, &coord[i].z); + coord[i].vizitat = 0; + } + scanf("%lf %lf %lf\n", &p.x, &p.y, &p.z); + z = n; /// folosesc o alta variabila, nu tot n!!pentru ca mai jos cand inru in + /// for, n nu va mai fi + while (z--) // acelasi si for-ul nu mai cauta peste tot!!! + { + min_initializat = 0; + for (i = 0; i < n; i++) { + if (coord[i].vizitat == 0) { + d_x = pow((p.x - coord[i].x), 2); + d_y = pow((p.y - coord[i].y), 2); + d_z = pow((p.z - coord[i].z), 2); + coord[i].d = sqrt(d_x + d_y + d_z); + if (min_initializat == 0) { + min = coord[i].d; + min_initializat = 1; + index = i; + } else { + if (min > coord[i].d) { + min = coord[i].d; + index = i; + } + } + } } - printf("%.2lf\n", sum); + sum = sum + min; + p.x = coord[index].x; + p.y = coord[index].y; + p.z = coord[index].z; + coord[index].vizitat = 1; + } + printf("%.2lf\n", sum); } diff --git a/nr_palindromic_maxim.c b/nr_palindromic_maxim.c index 13a2eb9..e21b347 100644 --- a/nr_palindromic_maxim.c +++ b/nr_palindromic_maxim.c @@ -1,81 +1,77 @@ #include #include -int main() -{ - int n,i, j, impar = 0,nr_cifre=0,nr_impar_ori =0, cifra_mijloc; - scanf("%d\n", &n); - int v[n], a[10]; - for ( i = 0; i < n; i++ )//citesc numerele - scanf("%d ", &v[i]); - - for ( i = 1; i < 10; i++ )//in vectorul a pun pt fiecare nr (indice) de cate ori apare - { - a[i] = 0; - for ( j = 0; j < n; j++) - { - if (v[j] ==i) - a[i]++; - } - } - - nr_cifre = n; - - if ((nr_cifre%2)!=0)//daca am nr impar de cifre - { - for ( i = 1; i < 10; i++ ) //am voie sa am O SINGURA CIFRA de nr impar de ori - { - if (a[i]%2!=0) - { - nr_impar_ori++; - cifra_mijloc = i; - } - } - if(nr_impar_ori!=1)//daca nu am niciuna/am mai multe de nr impar ori, nu se poate face palindrom - { - printf("0"); - exit(0); - } - else if(nr_impar_ori==1) //dar daca am una singura, se poate - { - for ( i = 9; i > 0; i-- ) //afisez descrescator fiecare cifra de nr_aparitii/2 - { - if (a[i]!=0) - for ( j = 0; j < a[i]/2;j++) - printf("%d", i); - } - printf("%d", cifra_mijloc); //afisez cifra din mijloc - for ( i = 1; i < 10; i++ )//afisez crescator fiecare cifra de nr_aparitii/2 - { - - if (a[i]!=0) - for ( j = 0; j < a[i]/2;j++) - printf("%d", i); - - } - } - } - if ((nr_cifre%2)==0)//daca am nr par de cifre - { - for ( i = 1; i < 10; i++ ) // nu am voie sa am niciuna de nr impar de ori - { - if (a[i]%2!=0) - { - printf("0"); - exit(0); - } - } - for ( i = 9; i > 0; i-- ) - { - if (a[i]!=0) - for ( j = 0; j < a[i]/2;j++) - printf("%d", i); - } - for ( i = 1; i < 10; i++ ) - { - if (a[i]!=0) - for ( j = 0; j < a[i]/2;j++) - printf("%d", i); - } - } - } +int main() { + int n, i, j, impar = 0, nr_cifre = 0, nr_impar_ori = 0, cifra_mijloc; + scanf("%d\n", &n); + int v[n], a[10]; + for (i = 0; i < n; i++) // citesc numerele + scanf("%d ", &v[i]); + + for (i = 1; i < 10; + i++) // in vectorul a pun pt fiecare nr (indice) de cate ori apare + { + a[i] = 0; + for (j = 0; j < n; j++) { + if (v[j] == i) + a[i]++; + } + } + + nr_cifre = n; + + if ((nr_cifre % 2) != 0) // daca am nr impar de cifre + { + for (i = 1; i < 10; i++) // am voie sa am O SINGURA CIFRA de nr impar de ori + { + if (a[i] % 2 != 0) { + nr_impar_ori++; + cifra_mijloc = i; + } + } + if (nr_impar_ori != 1) // daca nu am niciuna/am mai multe de nr impar ori, + // nu se poate face palindrom + { + printf("0"); + exit(0); + } else if (nr_impar_ori == 1) // dar daca am una singura, se poate + { + for (i = 9; i > 0; + i--) // afisez descrescator fiecare cifra de nr_aparitii/2 + { + if (a[i] != 0) + for (j = 0; j < a[i] / 2; j++) + printf("%d", i); + } + printf("%d", cifra_mijloc); // afisez cifra din mijloc + for (i = 1; i < 10; + i++) // afisez crescator fiecare cifra de nr_aparitii/2 + { + + if (a[i] != 0) + for (j = 0; j < a[i] / 2; j++) + printf("%d", i); + } + } + } + if ((nr_cifre % 2) == 0) // daca am nr par de cifre + { + for (i = 1; i < 10; i++) // nu am voie sa am niciuna de nr impar de ori + { + if (a[i] % 2 != 0) { + printf("0"); + exit(0); + } + } + for (i = 9; i > 0; i--) { + if (a[i] != 0) + for (j = 0; j < a[i] / 2; j++) + printf("%d", i); + } + for (i = 1; i < 10; i++) { + if (a[i] != 0) + for (j = 0; j < a[i] / 2; j++) + printf("%d", i); + } + } +} diff --git a/numere_inmatriculare.c b/numere_inmatriculare.c index e08e0b8..ea7a95a 100644 --- a/numere_inmatriculare.c +++ b/numere_inmatriculare.c @@ -1,62 +1,52 @@ -#include #include -#include +#include +#include -int main () { - char s1[4], s2[4], s3[4]; - int i,j, ok=0, c = 0; - char jud[42][3]={{"AB"},{"AR"},{"AG"},{"B"},{"BC"},{"BH"},{"BN"},{"BT"},{"BV"},{"BR"},{"BZ"},{"CS"},{"CL"},{"CJ"},{"CT"},{"CV"},{"DB"},{"DJ"},{"GL"}, - {"GR"},{"GJ"},{"HR"},{"HD"},{"IL"},{"IS"},{"IF"},{"MM"},{"MH"},{"MS"},{"NT"},{"OT"},{"PH"},{"SM"},{"SJ"},{"SB"},{"SV"},{"TR"},{"TM"},{"TL"},{"VS"},{"VL"},{"VN"}}; - - while(!feof(stdin)) - { - ok = 0; - scanf("%s %s %s\n", s1, s2, s3); - //VERIFIC JUDET - for( i = 0; i < 42; i++) - { - if(strcmp( s1, jud[i]) == 0) - { - ok = 1; - break; - } - } - //VERIFIC CIFRELE - if((strlen(s2) < 2) || (strlen(s2) > 3)) ok = 0; !!!!!!! sau, nu SI!!! - if (ok) - { - for( i = 0; i< strlen(s2); i++) - { - if( isdigit(s2[i]) == 0 ) - { - ok = 0; - break; - } - - } - - } - - //VERIFIC LITERELE - if(strlen(s3) !=3) ok = 0; - if(ok) - { - for (i = 0; i< 3; i++) - { - if( isupper(s3[i]) == 0) - { - ok = 0; - break; - } - - } - - } - - - if(ok) printf("%s %s %s\n", s1, s2, s3); - - +int main() { + char s1[4], s2[4], s3[4]; + int i, j, ok = 0, c = 0; + char jud[42][3] = {{"AB"}, {"AR"}, {"AG"}, {"B"}, {"BC"}, {"BH"}, {"BN"}, + {"BT"}, {"BV"}, {"BR"}, {"BZ"}, {"CS"}, {"CL"}, {"CJ"}, + {"CT"}, {"CV"}, {"DB"}, {"DJ"}, {"GL"}, {"GR"}, {"GJ"}, + {"HR"}, {"HD"}, {"IL"}, {"IS"}, {"IF"}, {"MM"}, {"MH"}, + {"MS"}, {"NT"}, {"OT"}, {"PH"}, {"SM"}, {"SJ"}, {"SB"}, + {"SV"}, {"TR"}, {"TM"}, {"TL"}, {"VS"}, {"VL"}, {"VN"}}; + + while (!feof(stdin)) { + ok = 0; + scanf("%s %s %s\n", s1, s2, s3); + // VERIFIC JUDET + for (i = 0; i < 42; i++) { + if (strcmp(s1, jud[i]) == 0) { + ok = 1; + break; + } + } + // VERIFIC CIFRELE + if ((strlen(s2) < 2) || (strlen(s2) > 3)) + ok = 0; + !!!!!!!sau, nu SI !!!if (ok) { + for (i = 0; i < strlen(s2); i++) { + if (isdigit(s2[i]) == 0) { + ok = 0; + break; + } + } } - + + // VERIFIC LITERELE + if (strlen(s3) != 3) + ok = 0; + if (ok) { + for (i = 0; i < 3; i++) { + if (isupper(s3[i]) == 0) { + ok = 0; + break; + } + } + } + + if (ok) + printf("%s %s %s\n", s1, s2, s3); + } } diff --git a/proba_rezistenta.c b/proba_rezistenta.c index c61f44c..3112503 100644 --- a/proba_rezistenta.c +++ b/proba_rezistenta.c @@ -1,62 +1,48 @@ -#include -#include -#include +#include +#include +#include +int main() { -int main() -{ - - int n, i,j,barem,x=0; - struct tip { - char nume[20]; - char prenume[20]; - int timp; - - }; - scanf("%d\n", &n); - struct tip elevi[n], reusit[n], temp; - for(i=0;i reusit[j].timp) { + temp = reusit[i]; + reusit[i] = reusit[j]; + reusit[j] = temp; } - else { - for(i=0;i reusit[j].timp) - { - temp = reusit[i]; - reusit[i] = reusit[j]; - reusit[j] = temp; - } - } - } - printf("%d\n", x); - for(i=0;i +#include - int m,s,n; - struct tip { - int r; - int g; - int b; - }; -struct tip elem[21][21],max; +int m, s, n; +struct tip { + int r; + int g; + int b; +}; +struct tip elem[21][21], max; -tip maxim(int x, int y) -{ - int i,j; - max.r = elem[x][y].r; - max.g = elem[x][y].g; - max.b = elem[x][y].b; - for(i=x;i -#include +#include +#include +int main() { + int m, n, s, i, j, z, k; + scanf("%d\n", &m); + scanf("%d\n", &n); + scanf("%d\n", &s); + struct triplet { + int v[3]; + }; -int main() -{ - - int m,n,s,i,j,z,k; - scanf("%d\n", &m); - scanf("%d\n", &n); - scanf("%d\n", &s); - struct triplet { - int v[3]; - }; - - struct triplet a[m][n]; - for(i=0;i=0) && (a[i][j].v[k]<=(256/s))) - { - a[i][j].v[k] = 0; - } - else if((a[i][j].v[k]>(((s-1)*256)/s)) && (a[i][j].v[k]<=(255))) - { - a[i][j].v[k] = s-1; - } - else - { - for(z = 1;z(z*256)/s) && (a[i][j].v[k]<=((z+1)*256)/s)) - { - a[i][j].v[k] = z; - //FARA BREAK!!! - } - } - } - } - } + struct triplet a[m][n]; + for (i = 0; i < m; i++) { + for (j = 0; j < n; j++) { + scanf("%d %d %d ", &a[i][j].v[0], &a[i][j].v[1], &a[i][j].v[2]); + for (k = 0; k < 3; k++) { + if ((a[i][j].v[k] >= 0) && (a[i][j].v[k] <= (256 / s))) { + a[i][j].v[k] = 0; + } else if ((a[i][j].v[k] > (((s - 1) * 256) / s)) && + (a[i][j].v[k] <= (255))) { + a[i][j].v[k] = s - 1; + } else { + for (z = 1; z < s - 1; z++) { + if ((a[i][j].v[k] > (z * 256) / s) && + (a[i][j].v[k] <= ((z + 1) * 256) / s)) { + a[i][j].v[k] = z; + // FARA BREAK!!! + } + } } - - for(i=0;i +#include +int main() { -int main() -{ - - int m,n,p,i,j,k,max; - scanf("%d %d %d\n",&m,&n,&p); - int v[10][10], w[10][10],x[10], s[10],y[10]; - - for (i=0;imax) - { - max = y[j]; - k=j; - - } - - } - - - printf("%d", k+1); - - + int m, n, p, i, j, k, max; + scanf("%d %d %d\n", &m, &n, &p); + int v[10][10], w[10][10], x[10], s[10], y[10]; + + for (i = 0; i < n; i++) + s[i] = 0; + + for (i = 0; i < p; i++) + y[i] = 0; + + for (i = 0; i < m; i++) { + for (j = 0; j < n; j++) { + scanf("%d", &v[i][j]); + } + } + + for (i = 0; i < n; i++) { + for (j = 0; j < p; j++) + + { + scanf("%d ", &w[i][j]); + } + } + + for (i = 0; i < m; i++) { + scanf("%d ", &x[i]); + } + + for (j = 0; j < n; j++) { + for (i = 0; i < m; i++) { + s[j] = s[j] + x[i] * v[i][j]; + } + } + + for (k = 0; k < p; k++) { + + for (j = 0; j < n; j++) { + + y[k] = y[k] + s[j] * w[j][k]; + } + } + + max = y[0]; + k = 0; + for (j = 0; j < p; j++) { + + if (y[j] > max) { + max = y[j]; + k = j; + } + } + + printf("%d", k + 1); } diff --git a/rezistenta_nominala.c b/rezistenta_nominala.c index c25e723..1f32e81 100644 --- a/rezistenta_nominala.c +++ b/rezistenta_nominala.c @@ -1,36 +1,32 @@ -#include -#include +#include +#include int main() { - int n,i; - scanf("%d\n",&n); - float v[n], media=0, suma=0, dispersia=0,procent=0,c=0; - - for (i=0;i -#include +#include +#include -int main() -{ - int m, n,nr,h[10],i,j,suma=0, c=0, dif = 0; - double media=0, d=0; - - scanf("%d\n", &m); - scanf("%d\n", &n); - //initializez vectorul cu 0 - for(j=0;j<10;j++) - { - h[j] = 0; - } - //fac histograma - for(i=0;i d)// daca las h[j]>=d ca in cerinta, nu merge... - c++; - } - - printf("%d\n", c); - - - +int main() { + int m, n, nr, h[10], i, j, suma = 0, c = 0, dif = 0; + double media = 0, d = 0; + + scanf("%d\n", &m); + scanf("%d\n", &n); + // initializez vectorul cu 0 + for (j = 0; j < 10; j++) { + h[j] = 0; + } + // fac histograma + for (i = 0; i < m * n; i++) { + scanf("%d\n", &nr); + h[nr] = h[nr] + 1; + } + // suma + for (j = 0; j < 10; j++) { + suma = suma + h[j]; + } + + media = (double)suma / 10; + suma = 0; + for (j = 0; j < 10; j++) { + dif = 0; + dif = h[j] - media; + suma = suma + pow(dif, 2); + } + + d = sqrt(suma / 10); + + for (j = 0; j < 10; j++) { + if (h[j] > d) // daca las h[j]>=d ca in cerinta, nu merge... + c++; + } + + printf("%d\n", c); } diff --git a/subsir_nr_pozitive.c b/subsir_nr_pozitive.c index 6afa52f..54650d1 100644 --- a/subsir_nr_pozitive.c +++ b/subsir_nr_pozitive.c @@ -1,50 +1,37 @@ -#include +#include -int main() -{ - int i=0,n,index,lung, lung_max=0,ind; - float x,suma,suma_max=0; - scanf("%d\n", &n); - while(i0) - { - suma+=x; - lung += 1; - - } - else - { - break; - - } - } - - if((lung>lung_max) ||((lung==lung_max) && (suma>suma_max))) - { - ind = index; //tb actualizat si index, altfel o sa am suma max si lung max, DAR MEREU AFISEAZA ULTIMUL INDEX!! - suma_max = suma; - lung_max = lung; - - } - - } - - if(lung_max==0) - { - printf("-1 0"); - } - else - { - - printf("%d %d\n", ind, lung_max); - } - +int main() { + int i = 0, n, index, lung, lung_max = 0, ind; + float x, suma, suma_max = 0; + scanf("%d\n", &n); + while (i < n) { + index = i; + suma = 0; + lung = 0; + while (i < n) { + scanf("%f ", &x); + i++; + if (x > 0) { + suma += x; + lung += 1; + + } else { + break; + } + } + + if ((lung > lung_max) || ((lung == lung_max) && (suma > suma_max))) { + ind = index; // tb actualizat si index, altfel o sa am suma max si lung + // max, DAR MEREU AFISEAZA ULTIMUL INDEX!! + suma_max = suma; + lung_max = lung; + } + } + + if (lung_max == 0) { + printf("-1 0"); + } else { + + printf("%d %d\n", ind, lung_max); + } } diff --git a/sudoku.c b/sudoku.c index fc296b3..b5bf30b 100644 --- a/sudoku.c +++ b/sudoku.c @@ -1,123 +1,91 @@ -#include -#include -#include +#include +#include +#include bool f = true; int a[9][9]; -int verificare_linii() -{ - int i,j,k; - f = true; - for (i=0;i<9;i++) - { - for(j=0;j<9;j++) - { - for(k=0;k<9;k++) - { - if((a[i][j]==a[i][k]) && (j!=k)) - { - f = false; - } - } - } +int verificare_linii() { + int i, j, k; + f = true; + for (i = 0; i < 9; i++) { + for (j = 0; j < 9; j++) { + for (k = 0; k < 9; k++) { + if ((a[i][j] == a[i][k]) && (j != k)) { + f = false; } - return f; - + } + } + } + return f; } -int verificare_coloane() -{ - int i,j,k; - f = true; - for (i=0;i<9;i++) - { - for(j=0;j<9;j++) - { - for(k=0;k<9;k++) - { - if((a[j][i]==a[k][i]) && (j!=k)) - { - f = false; - } - } - } +int verificare_coloane() { + int i, j, k; + f = true; + for (i = 0; i < 9; i++) { + for (j = 0; j < 9; j++) { + for (k = 0; k < 9; k++) { + if ((a[j][i] == a[k][i]) && (j != k)) { + f = false; } - return f; - + } + } + } + return f; } -int verificare_bloc( int x,int y) -{ - - int i,j,b,c; - f = true; - for(i=x;i -#include -#include +#include +#include +#include -int main() -{ - int b,n,i,j; - float suma=0, reducere = 0; - scanf("%d %d\n", &b, &n); - unsigned produs; - struct tip{ - unsigned cod; - char p_c; - float valoare; - }; - struct tip baza[b]; - for(i=0;i -#include -#include -#include +#include +#include +#include +#include -int main() -{ - char text[256]; - int n, i, index = 0, v[10];// v este un vector cu chei!!int!!! - fgets( text, sizeof(text), stdin); - if ( text[strlen(text)-1] = '\n') - { - text[strlen(text)-1] = '\0'; - } - scanf("%d\n", &n); - - for(i = 0; i < n; i++) - { - scanf("%d\n", &v[i]); - } - - for ( i = 0; i < strlen(text);i++) - { - if ((text[i] >= 'a') && (text[i] <= 'z')) - { - text[i] = text[i] + v[index]; - index++; - index = index%n; /// daca index depaseste dimensiunea vectorului - if (text[i] > 'z') ///o ia de la capat - text[i] = text[i] - 26; ///daca se depaseste zona alfabetului in ascii - } /// o ia de la capat - if ((text[i] >= 'A') && (text[i] <= 'Z')) - { - text[i] = text[i] + v[index]; - index++; - index = index%n; - if (text[i] > 'Z') - text[i] = text[i] - 26; - } - } - puts(text); +int main() { + char text[256]; + int n, i, index = 0, v[10]; // v este un vector cu chei!!int!!! + fgets(text, sizeof(text), stdin); + if (text[strlen(text) - 1] = '\n') { + text[strlen(text) - 1] = '\0'; + } + scanf("%d\n", &n); + + for (i = 0; i < n; i++) { + scanf("%d\n", &v[i]); + } + + for (i = 0; i < strlen(text); i++) { + if ((text[i] >= 'a') && (text[i] <= 'z')) { + text[i] = text[i] + v[index]; + index++; + index = index % n; /// daca index depaseste dimensiunea vectorului + if (text[i] > 'z') /// o ia de la capat + text[i] = text[i] - 26; /// daca se depaseste zona alfabetului in ascii + } /// o ia de la capat + if ((text[i] >= 'A') && (text[i] <= 'Z')) { + text[i] = text[i] + v[index]; + index++; + index = index % n; + if (text[i] > 'Z') + text[i] = text[i] - 26; + } + } + puts(text); } diff --git a/treceri_prin_zero.c b/treceri_prin_zero.c index 47ffc76..b93671e 100644 --- a/treceri_prin_zero.c +++ b/treceri_prin_zero.c @@ -1,43 +1,35 @@ -#include -#include -#include +#include +#include +#include +int main() { + int i, j, l, schimbari = 0, nr_elem_fereastra = 0, n, w; + float medie = 0, suma = 0, dif = 0, v[20]; + scanf("%d\n", &n); + for (i = 0; i < n; i++) + scanf("%f\n", &v[i]); + scanf("%d\n", &w); - -int main() -{ - int i,j, l,schimbari = 0, nr_elem_fereastra = 0, n, w; - float medie = 0, suma = 0, dif = 0, v[20]; - scanf("%d\n", &n); - for(i=0;i= n) j = n - 1; - for( l = i; l <= j; l++ ) - { - suma = suma + v[l]; - nr_elem_fereastra++; - } - medie = suma / nr_elem_fereastra; - for( l = i; l <= j; l++) - { - v[l] = v[l] - medie; - } - for( l = i; l < j; l++) - { - if(((v[l]>0) && v[l+1] < 0) || ((v[l]<0) && v[l+1] > 0)) - schimbari++; - - } - printf("%d\n", schimbari); - i = j;// de ce asa merge, dar cu for( i = 0; i < n; i+w ) nu merge?? - - } - + for (i = 0; i < n; i++) { + suma = 0; + nr_elem_fereastra = 0; + schimbari = 0; + j = i + w - 1; + if (i + w - 1 >= n) + j = n - 1; + for (l = i; l <= j; l++) { + suma = suma + v[l]; + nr_elem_fereastra++; + } + medie = suma / nr_elem_fereastra; + for (l = i; l <= j; l++) { + v[l] = v[l] - medie; + } + for (l = i; l < j; l++) { + if (((v[l] > 0) && v[l + 1] < 0) || ((v[l] < 0) && v[l + 1] > 0)) + schimbari++; + } + printf("%d\n", schimbari); + i = j; // de ce asa merge, dar cu for( i = 0; i < n; i+w ) nu merge?? + } } diff --git a/triunghiuri.c b/triunghiuri.c index b7b1593..d15fdc1 100644 --- a/triunghiuri.c +++ b/triunghiuri.c @@ -1,29 +1,24 @@ -#include -#include -int main() -{ - int n,i,j; - float a,b,c,p,aria=1,raport, perim,max=-1; - scanf("%d\n", &n); - - for(i=0;i=max) - { - max = raport; - j=i; - } - } - } - } - printf("%d %.3f\n", j, max); +#include +#include +int main() { + int n, i, j; + float a, b, c, p, aria = 1, raport, perim, max = -1; + scanf("%d\n", &n); + + for (i = 0; i < n; i++) { + scanf("%f %f %f\n", &a, &b, &c); + if ((a < b + c) && (b < a + c) && (c < a + b)) { + if ((a != b) && (b != c) && (a != c)) { + perim = a + b + c; + p = perim / 2; + aria = sqrt(p * (p - a) * (p - b) * (p - c)); + raport = aria / perim; + if (raport >= max) { + max = raport; + j = i; + } + } + } + } + printf("%d %.3f\n", j, max); } diff --git a/valori_reprezentative.c b/valori_reprezentative.c index 58e2dd4..bb07a99 100644 --- a/valori_reprezentative.c +++ b/valori_reprezentative.c @@ -1,38 +1,32 @@ -#include -#include +#include +#include +int main() { + int x, i, j, m, n, s = 0, count = 0; + double suma = 0; + int v[200]; -int main() -{ - int x,i,j,m,n,s=0, count=0; - double suma=0; - int v[200]; - - scanf("%d\n",&m); - for (i=0;i=5) - { - suma = suma+v[i]; - count = count+1; - break; - } - } - - } + scanf("%d\n", &m); + for (i = 0; i < m; i++) + scanf("%d\n", &v[i]); + + scanf("%d\n", &n); + for (i = m; i < m + n; i++) + scanf("%d\n", &v[i]); + n = n + m; + for (i = 0; i < n; i++) { + s = 0; + for (j = 0; j < n; j++) { + if ((v[j] <= v[i]) && (i != j)) { + s++; + if (s >= 5) { + suma = suma + v[i]; + count = count + 1; + break; } + } + } + } - printf("%.2f\n",suma/count); + printf("%.2f\n", suma / count); } diff --git a/zi_nastere.c b/zi_nastere.c index 1946ac9..de3daf2 100644 --- a/zi_nastere.c +++ b/zi_nastere.c @@ -1,76 +1,56 @@ -#include +#include +int main() { + int n, i, j, zi, luna, nr = 0, ok = 0; + struct tip { + int zi; + int luna; + }; -int main() -{ - int n,i,j, zi,luna,nr=0,ok=0; - struct tip{ - int zi; - int luna; - }; - - scanf("%d\n", &n); - struct tip aniv[n], afisare[n], min; + scanf("%d\n", &n); + struct tip aniv[n], afisare[n], min; - for(i=0;ianiv[j].luna) || ((aniv[i].luna==aniv[j].luna) && (aniv[i].zi>aniv[j].zi))) - { - min = aniv[i]; - aniv[i] = aniv[j]; - aniv[j] = min; - } - } - } - - for(i=0;i9) - { - printf("0%d-%d\n", aniv[i].zi, aniv[i].luna ); - } - else if(aniv[i].luna<10 && aniv[i].zi>9) - { - printf("%d-0%d\n", aniv[i].zi, aniv[i].luna ); - } - else if((aniv[i].luna<10) && (aniv[i].zi<10)) - { - printf("0%d-0%d\n", aniv[i].zi, aniv[i].luna ); - } - else //if(aniv[i].luna>9 && aniv[i].zi>9) - { - printf("%d-%d\n", aniv[i].zi, aniv[i].luna ); - } - } - - //SAU printf("%02d-%02d\n", aniv[i].zi, aniv[i].luna ); - afiseaza nr de max 2 cifre si completeaza cu cati de 0 este nevoie - - - + for (i = 0; i < n; i++) { + scanf("%d-%d\n", &zi, &luna); + for (j = 0; j < nr; j++) { + ok = 0; + if ((zi == aniv[j].zi) && (luna == aniv[j].luna)) { + ok = 1; + break; + } + } + + if (ok == 0) { + aniv[nr].zi = zi; + aniv[nr].luna = luna; + nr++; + } + } + + for (i = 0; i < nr - 1; i++) { + for (j = i + 1; j < nr; j++) { + if ((aniv[i].luna > aniv[j].luna) || + ((aniv[i].luna == aniv[j].luna) && (aniv[i].zi > aniv[j].zi))) { + min = aniv[i]; + aniv[i] = aniv[j]; + aniv[j] = min; + } + } + } + + for (i = 0; i < nr; i++) { + if (aniv[i].zi < 10 && aniv[i].luna > 9) { + printf("0%d-%d\n", aniv[i].zi, aniv[i].luna); + } else if (aniv[i].luna < 10 && aniv[i].zi > 9) { + printf("%d-0%d\n", aniv[i].zi, aniv[i].luna); + } else if ((aniv[i].luna < 10) && (aniv[i].zi < 10)) { + printf("0%d-0%d\n", aniv[i].zi, aniv[i].luna); + } else // if(aniv[i].luna>9 && aniv[i].zi>9) + { + printf("%d-%d\n", aniv[i].zi, aniv[i].luna); + } + } + + // SAU printf("%02d-%02d\n", aniv[i].zi, aniv[i].luna ); - afiseaza nr de + // max 2 cifre si completeaza cu cati de 0 este nevoie }