http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2829
补了一个小的知识漏洞,原来调用max函数,里面不能判断 long long型
又是个贪心的题目,最前面不知道下面数据怎么出来的,还以为是自己理解错了题意,然后自己按照自己幻想的题意,然后拼出了数据是怎么来的,但是很遗憾,WA;
总结:任何非题意所提供出来的条件,都是不可靠的,也是一定的不出正确的结果的,因此读懂题意很重要,所以,宁愿仔细读几遍题目,也不要轻易动手敲代码,另外还要相信自己,即使英语能力很菜 。
// File Name: uva11729.cpp // Author: bo_jwolf // Created Time: Wednesday, May 08, 2013 PM02:24:56 HKT #include<vector> #include<list> #include<map> #include<set> #include<deque> #include<stack> #include<queue> #include<bitset> #include<algorithm> #include<functional> #include<numeric> #include<utility> #include<sstream> #include<iostream> #include<iomanip> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<ctime> using namespace std; const int maxn = 10005 ; typedef long long ll ; struct node { int people , sec; }edge[ maxn ] ; bool cmp( node a , node b ) { return a.sec > b.sec ; } int main() { int n ; int k = 0 ; int sum ; while( scanf( "%d" , &n ) != EOF && n ) { for( int i = 0 ; i < n ; i++ ) scanf( "%d%d" , &edge[ i ].people , &edge[ i ].sec ); sort( edge , edge + n , cmp ) ; // long long sum = 0 ; sum = 0 ; int ans = 0 ; for( int i = 0 ; i < n ; i++ ) { ans += edge[ i ].people ; sum = max( sum , ans + edge[ i ].sec ); } printf( "Case %d: %d\n" , ++k, sum ) ; } return 0; }