Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
汗,我能过USACO官方数据,却不能ac,加了数据了?#include <iostream> using namespace std; const int maxint = 0x7FFFFFFF; typedef long long int64; const int64 maxint64 = 0x7FFFFFFFFFFFFFFFLL; const int maxm = 400010; const int zero = 200000; int n; int f[maxm]; int main() { while (scanf("%d", &n) != EOF) { memset(f, -1, sizeof(f)); f[zero] = 0; for (int i = 0; i < n; i++) { int t1, t2; scanf("%d%d", &t1, &t2); if (t1 >= 0) { for (int j = maxm - 1 - t1; j >= 0; j--) if (f[j] != -1) f[j + t1] >?= f[j] + t1 + t2; } else { for (int j = -t1; j < maxm; j++) if (f[j] != -1) f[j + t1] >?= f[j] + t1 + t2; } } int ans = 0; for (int i = zero; i < maxm; i++) if (f[i] - i + zero >= 0) ans >?= f[i]; printf("%d\n", ans); } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator