期望得分:100+40+100=240
实际得分:50+40+20=110
T1 start取了min没有用,w(゚Д゚)w O(≧口≦)O
T3 代码3个bug :数组开小了,一个细节没注意,手抖打错变量。。。
细节处理很重要啊!!!!
贪心,按结束时间排序
#include<cstdio> #include<iostream> #include<algorithm> using namespace std; #define N 100001 struct node { int t,s; }e[N]; void read(int &x) { x=0; char c=getchar(); while(!isdigit(c)) c=getchar(); while(isdigit(c)) { x=x*10+c-'0'; c=getchar(); } } bool cmp(node p,node q) { return p.s>q.s; } int main() { freopen("manage.in","r",stdin); freopen("manage.out","w",stdout); int n; read(n); for(int i=1;i<=n;i++) read(e[i].t),read(e[i].s); sort(e+1,e+n+1,cmp); int now=2e9,start; for(int i=1;i<=n;i++) { start=min(now,e[i].s); now=start-e[i].t; } if(now>=0) printf("%d",now); else printf("-1"); }