标签:style blog http color io os ar for sp
#include<iostream> #include<vector> #include<stdio.h> #include<cstring> #include<algorithm> using namespace std; struct Line { int a,b,w; }; vector <Line> line; vector <Line> templine; int n; int workline[20010]; bool ok(int s) { memset(workline,0,sizeof(workline)); templine.resize(line.size()); memcpy(&templine[0],&line[0],line.size()*sizeof(Line)); for(int i=0;i<n;i++) { // cout<<templine[i].a<<" "<<templine[i].b<<endl; for(int j=templine[i].a;j<templine[i].b;j++) { if(workline[j]<s) { if(templine[i].w>(s-workline[j])) { int temp=s-workline[j]; workline[j]=s; templine[i].w-=temp; } else { workline[j]+=templine[i].w; templine[i].w=0; } } } if(templine[i].w>0) return false; } return true; } bool cmp(Line aa,Line bb) { return aa.b<bb.b; } int main() { int T; //cin>>T; scanf("%d",&T); while(T--) { int t1,t2,t3; Line aa; //cin>>n; scanf("%d",&n); line.clear(); for(int i=0;i<n;i++) { //cin>>t1>>t2>>t3; scanf("%d%d%d",&t1,&t2,&t3); aa.a=t1; aa.b=t2; aa.w=t3; line.push_back(aa); } sort(line.begin(),line.end(),cmp); int L=1,R=1000000,M; while(L<R) { if(R-L==1) break; M=(R+L)/2; if(ok(M)) R=M; else L=M; //cout<<R<<"*"<<endl; } cout<<R<<endl; } return 0; }
标签:style blog http color io os ar for sp
原文地址:http://www.cnblogs.com/XMJQVRWSD/p/4052735.html