Cod sursa(job #1781666)

Utilizator NinjaCubeMihai Radovici NinjaCube Data 17 octombrie 2016 10:31:19
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
ifstream in("rucsac.in");
ofstream out("rucsac.out");
int n,g,i,j,a[5001][3],ok=1,n1;
in>>n>>g;
for (i=1; i<=n; i++)
  in>>a[i][1]>>a[i][2];

n1=n;
while (ok==1)
{
ok=0;
for (i=1; i<n1; i++)
  if (a[i][2]<a[i+1][2])
    {
    a[0][0]=a[i][1];
    a[i][1]=a[i+1][1];
    a[i+1][1]=a[0][0];

    a[0][0]=a[i][2];
    a[i][2]=a[i+1][2];
    a[i+1][2]=a[0][0];

    ok=1;
    }
  else
    if (a[i][2]==a[i+1][2] && a[i][1]>a[i+1][1])
      {
      a[0][0]=a[i][1];
      a[i][1]=a[i+1][1];
      a[i+1][1]=a[0][0];
      }
n1--;
}

/*for (i=1; i<=n; i++)
  cout<<a[i][1]<<' '<<a[i][2]<<'\n';*/

n1=0;
j=0;
for (i=1; j<g; i++)
  {
  if (j+a[i][1]<=g)
    {
    n1+=a[i][2];
    j+=a[i][1];
    }
  else
    break;
  }
out<<n1;
}