Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdio.h>
- #include <string.h>
- using namespace std;
- /// 1
- void ElementeComune() {
- int n, m, frecv[2][2001] = {0}, aux;
- printf("n = "); scanf("%d", &n);
- printf("m = "); scanf("%d", &m);
- printf("a[] = ");
- for(int i = 1; i <= n; i++) {
- scanf("%d", &aux);
- if(aux < 0) frecv[0][-aux]++;
- else frecv[1][aux]++;
- }
- printf("b[] = ");
- for(int i = 1; i <= m; i++) {
- scanf("%d", &aux);
- if(aux < 0) frecv[0][-aux]++;
- else frecv[1][aux]++;
- }
- printf("Elementele comune: ");
- for(int i = 2000; i > 0; i--) {
- if(frecv[0][i] == 2)
- printf("-%d ", i);
- }
- for(int i = 0; i <= 2000; i++) {
- if(frecv[1][i] == 2)
- printf("%d ", i);
- }
- }
- /// 2
- /// A
- int CautareBinara(int st, int dr, int n, int *v, int x) {
- ///int m = st + (dr - st) / 2;
- int m = (st + dr) / 2;
- if(v[m] == x) return m;
- if((st >= dr) && (v[m] != x)) return -1;
- if(v[m] > x) return CautareBinara(st, m-1, n, v, x);
- else if(v[m] < x) return CautareBinara(m+1, dr, n, v, x);
- }
- void Subsir() {
- int n, a[10000], aux, x, y;
- printf("n = "); scanf("%d", &n);
- printf("a[] = ");
- for(int i = 0; i < n; i++)
- scanf("%d", &a[i]);
- printf("x = "); scanf("%d", &x);
- printf("y = "); scanf("%d", &y);
- printf("Subsir: ");
- for(int i = CautareBinara(0, n, n, a, x); i < y; i++)
- printf("%d ", a[i]);
- }
- /// B
- void Interclasare() {
- int n, m, a[10000], b[10000], c[10000], n_c;
- printf("n = "); scanf("%d", &n);
- printf("a[] = ");
- for(int i = 0; i < n; i++)
- scanf("%d", &a[i]);
- printf("m = "); scanf("%d", &m);
- printf("b[] = ");
- for(int i = 0; i < m; i++)
- scanf("%d", &b[i]);
- int i, j;
- i = j = n_c = 0;
- while(i < n && j < m) {
- if(a[i] <= b[j]) c[n_c++] = a[i++];
- else c[n_c++] = b[j++];
- }
- while(i < n) c[n_c++] = a[i++];
- while(j < m) c[n_c++] = b[j++];
- printf("c[] = ");
- for(i = 0; i < n_c; i++)
- printf("%d ", c[i]);
- }
- /// 3
- void Inversare(char *cuv) {
- int i = 0, j = strlen(cuv) - 1;
- while(i < j) swap(cuv[i++], cuv[j--]);
- }
- void NumereMari() {
- char x[256], y[256], rez[256];
- int i, j, k;
- int mem = 0, s;
- printf("x = "); gets(x);
- printf("y = "); gets(y);
- if(x[0] != '-' && y[0] != '-') {
- int n = strlen(x) - 1;
- int m = strlen(y) - 1;
- Inversare(x);
- Inversare(y);
- int i = 0;
- while(i < min(n, m)) {
- s = x[i] + y[i] + mem - 3 * '0';
- mem = s % 10;
- s /= 10;
- rez[i] = s +
- }
- }
- }
- /// 4
- void Transpunere() {
- int n, m, a[1000][1000];
- printf("n = "); scanf("%d", &n);
- printf("m = "); scanf("%d", &m);
- for(int i = 0; i < n; i++) {
- for(int j = 0; j < m; j++)
- scanf("%d", &a[i][j]);
- }
- for(int j = 0; j < m; j++) {
- for(int i = 0; i < n; i++)
- printf("%d ", a[i][j]);
- printf("\n");
- }
- }
- /// 5
- void Spirala() {
- int n, m, a[1000][1000];
- printf("n = "); scanf("%d", &n);
- printf("m = "); scanf("%d", &m);
- for(int i = 1; i <= n; i++) {
- for(int j = 1; j <= m; j++)
- scanf("%d", &a[i][j]);
- }
- int nrAf = 0;
- int i, j, diri, dirj;
- diri = 0; dirj = 1;
- while(nrAf != n * m) {
- printf("%d ", a[i][j]);
- a[i][j] = -1;
- nrAf++;
- if(diri == 1 && (i == n || a[i + diri][j + dirj] == -1)) { diri = 0; dirj = -1; }
- if(diri == -1 && (i == 1 || a[i + diri][j + dirj] == -1)) { diri = 0; dirj = 1; }
- if(dirj == 1 && (j == m || a[i + diri][j + dirj] == -1)) { diri = 1; dirj = 0; }
- if(dirj == -1 && (j == 1 || a[i + diri][j + dirj] == -1)) { diri = -1; dirj = 0; }
- i += diri;
- j += dirj;
- }
- }
- int main()
- {
- /// MAIL: horatiu.macarau@my.fmi.unibuc.ro
- /// DE TERMINAT C
- /*
- ElementeComune();
- Subsir();
- Interclasare();
- NumereMari();
- Transpunere();
- */
- cout << '9' + '9' - 2 * '0';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement