您的位置:首页 > 其它

USACO 3.1 Stamps

2011-05-12 23:05 309 查看
TASK: stamps
LANG: C++

Compiling...
Compile: OK

Executing...
Test 1: TEST OK [0.000 secs, 10844 KB]
Test 2: TEST OK [0.000 secs, 10844 KB]
Test 3: TEST OK [0.000 secs, 10844 KB]
Test 4: TEST OK [0.000 secs, 10844 KB]
Test 5: TEST OK [0.000 secs, 10844 KB]
Test 6: TEST OK [0.000 secs, 10844 KB]
Test 7: TEST OK [0.000 secs, 10844 KB]
Test 8: TEST OK [0.000 secs, 10844 KB]
Test 9: TEST OK [0.000 secs, 10844 KB]
Test 10: TEST OK [0.054 secs, 10844 KB]
Test 11: TEST OK [0.378 secs, 10844 KB]
Test 12: TEST OK [0.108 secs, 10844 KB]
Test 13: TEST OK [0.000 secs, 10844 KB]

All tests OK.


/*
PROG: stamps
ID: jiafeim1
LANG: C++
*/
#include <algorithm>
#include <iostream>
#include <fstream>
#include <string>

using namespace std;
int k,n;
#define minN(x,y) ((x)<(y)?(x):(y))
int value[55];
int top = 0;
int res[2000005];
int main()
{
std::ifstream fin("stamps.in");
std::ofstream fout("stamps.out");

fin>>k>>n;

for(int i = 0;i!=n;++i)
fin>>value[top++];
sort(value,value+top);
long cur = 1;
res[0] = 0;
for(;;++cur)
{
res[cur] = 9999;
for(int i = 0;i!=n;++i)
{
if(value[i]>cur) break;
res[cur]=minN(res[cur],res[cur-value[i]]+1);
}
if(res[cur] > k) break;
}
fout<<cur-1<<endl;

fin.close();
fout.close();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: