【USACO】milk

来源:互联网 发布:闲鱼和淘宝的关系 编辑:程序博客网 时间:2024/06/12 00:13
/*ID: ahshenb1PROG: milkLANG: C++*/#include<iostream>#include<fstream>#include<string>using namespace std;void swap(int *a,int *b){    int tmp1,tmp2;    tmp1 = a[0];a[0]=b[0];b[0]=tmp1;    tmp2 = a[1];a[1]=b[1];b[1]=tmp2;}int divide(int **array,int low,int high){    int k = array[low][0];    do    {        while(low<high&&array[high][0]>=k) --high;        if(low<high)        {            swap(array[low],array[high]);            ++low;        }        while(low<high&&array[low][0]<=k) ++low;        if(low<high)        {            swap(array[low],array[high]);            --high;        }    }while(low!=high);    array[low][0] = k;    return low;}void quicksort(int **array,int low,int high){    int mid;    if(low>=high) return;    mid = divide(array,low,high);    quicksort(array,low,mid-1);    quicksort(array,mid+1,high);}void quicksort(int **array,int n){    quicksort(array,0,n-1);}int main(){    ifstream fin("milk.in");    ofstream fout("milk.out");    int milknum;    int n;    fin>>milknum>>n;    int **man;    man = new int*[n];    for(int i=0;i<n;++i)    {        man[i]=new int[2];        fin>>man[i][0]>>man[i][1];    }    quicksort(man,n);//    for(int i =0;i<n;++i)       // cout<<man[i][0]<<" "<<man[i][1]<<endl;    int fee =0;    int k;    for(k =0;k<n;++k)    {        milknum-=man[k][1];        if((milknum>0)){            fee+=(man[k][0])*(man[k][1]);        }        else            break;    //    cout<<(man[k][0])*(man[k][1])<<" "<<milknum<<" "<<fee<<endl;    }    milknum=milknum+man[k][1];    while(milknum>0)    {        milknum--;        fee+=man[k][0];    }    fout<<fee<<endl;    fin.close();    fout.close();    return 0;}

0 0
原创粉丝点击