Pagini recente » Cod sursa (job #2115491) | Cod sursa (job #3122246) | Cod sursa (job #113174) | Cod sursa (job #969774) | Cod sursa (job #1209676)
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
void shellsort(int a[100][4],int n)
{
int j,i,m,mid;
for(m = n/2;m>0;m/=2)
{
for(j = m;j< n;j++)
{
for(i=j-m;i>=0;i-=m)
{
if(a[i+m][2]>=a[i][2])
break;
else
{
mid = a[i][2];
a[i][2] = a[i+m][2];
a[i+m][2] = mid;
mid = a[i][1];
a[i][1] = a[i+m][1];
a[i+m][1] = mid;
mid = a[i][3];
a[i][3] = a[i+m][3];
a[i+m][3] = mid;
}
}
}
}
}
int main()
{
ifstream f("shop.in");
ofstream g("shop.out");
int n,v[100][4],c,l,s=0,m[100]={};
f>>n;
f>>c;
f>>l;
int cnt=0;
for(int i=0;i<n;i++){
f>>v[i][1];
f>>v[i][2];
v[i][3]=i;
}
shellsort(v,n);
int nr=0;
for(int i=0;i<n;i++)
{
int ct=v[i][2];
while((s+pow(c,v[i][1]))<=l&&ct>0)
{
s+=pow(c,v[i][1]);
ct--;
}
m[v[i][3]]=v[i][2]-ct;
nr+=v[i][2]-ct;
// cout<< v[i][3]<<" "<<v[i][2]-ct<<" \n";
}
g<<nr<<"\n";
for(int i=0;i<n;i++)
g<<m[i]<<" ";
cout << "Hello world!" << endl;
return 0;
}