24 feb. 2013

Furnici altruiste

Problema cu furnicile harnice, au prea mult si s-au hotarat sa imparta la greieri. Pot da unui greier o singura unitate de mancare(boaba grau), toate dau cat da cea mai saraca familie, dar se pot inprumuta intre ele, daca se imprumuta se pierde pe drum 1 unitate de mancare pentru fiecare unitate de distanta(metru) parcursa.
Fisier de intrare:
4
20 300
40 400
340 700
360 600

#include <iostream>
#include <fstream>

using namespace std;

//fisier de intrare
ifstream fin("ants.in");

int main()
{
    //n - numarul de familii de furnici
    //i - index pentru parcurgere
    long n,i;
    //a - distanta pana la tunel
    //b - boabe in plus
    //ap - distanta familiei precedente fata de tinel
    //s - suma boabelor in plus
    double a,b,ap,s=0;
    fin>>n;

    //prima familie
    fin>>a>>b;

    s+=b;
    ap=a;

    //celelalte n-1 familii
    for(i=1;i<n;i++)
    {
        fin>>a>>b;
        b=b-(a-ap);
        s+=b;
        ap=a;
    }

    fin.close();
    //media boabelor exceptand costul drumului
    cout<<(s/n);

    return 0;
}

23 feb. 2013

Basic C++ Hello World

#include <iostream>
#include <conio.h>
using namespace std;

int main ()
{
  cout << "Hello World!";
  getch();
  return 0;
}

20 nov. 2012

Suma elementelor din vector

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
 int n, i, s=0;
 int v[100];
 cout << "n:";
 cin >>n;
 for (i = 0; i < n; i++) {
  cin >> v[i];
 }
 for (i = 0; i < n; i++) {
  s+=v[i];
 }
    cout<<"Suma:"<< s;
}
propuneri de enunturi

9 nov. 2012

Valoarea maxima din vector

#include<iostream.h>

using namespace std;

int main() {
 int n, i, max;
 int v[100];
 cout << "n:";
 cin>>n;
 for (i = 0; i < n; i++) {
  cin >> v[i];
 }
 max = v[0];
 for (i = 1; i < n; i++) {
  if (max < v[i]) {
   max = v[i];
  }
 }
 cout << "maxim: " << max;
 return 0;
}
propuneri de enunturi

Citirea unui vector

Pentru a citi un vector trebuie sa cititi fiecare valoare a lui, preferabil intr-o bucla for. Mai intai trebuie sa stiti dimensiunea vectorului, se va citi de la tastatura si apoi pe rand valorile vectorului.


#include<iostream.h>

using namespace std;

int main() {
 int n, i;
 int v[100];
 cout << "n:";
 cin >> n;
 for (i = 0; i < n; i++) {
  cin >> v[i];
 }
 for (i = 0; i < n; i++) {
  cout << "v[" << i << "]:" << v[i] << endl;
 }
 return 0;
}
propuneri de enunturi

7 nov. 2012

Valoarea maxima dintr-o matrice

Pentru a afla valoarea maxima dintr-o matrice trebuie sa aveti o variabila care retine acea valoare maxima, apoi sa parcurgeti toata matricea si sa cautati valori mai mari decat maximul curent, daca gasiti o valoare mai mare atunci o retineti in variabila de referinta. Dupa ce ati citi o matrice ca in exemplu, gasiti maximul in felul urmator.
int max = matrix[0][0]; 
for (int i = 0; i < lines; i++) { 
     for (int j = 0; j < columns; j++) { 
       if (matrix[i][j] > max) { 
           max = matrix[i][j]; 
       } 
     } 
} 
cout << "Valoarea maxima din matrice este:" << max << endl; 
propuneri de enunturi

Citirea unei matrici

O matrice este un vector de vectori. Are un numar de linii(considerat un vector) si fiecare element din vectorul respectiv este la randul sau un vector(coloane).

#include <iostream>
using namespace std;

int main() {
 //numarul de linii si coloane
 int lines, columns;
 cout << "linii:";
 cin >> lines;
 cout << "colomns:";
 cin >> columns;
//declararea matricei
 int matrix[lines][columns];
//citirea de la tastatura a elementrlor, unul cate unul
 for (int i = 0; i < lines; i++) {
  for (int j = 0; j < columns; j++) {
   cout << "matrix[" << i << "][" << j << "]:";
   cin >> matrix[i][j];
  }
 }
//afirare in bloc a matricei
 cout << "Afisare matrice:" << endl;
 for (int i = 0; i < lines; i++) {
  for (int j = 0; j < columns; j++) {
   cout << matrix[i][j] << " ";
  }
  cout << endl;
 }
}
propuneri de enunturi