ZOJ 3573 Under Attack

来源:互联网 发布:可变数据排版 编辑:程序博客网 时间:2024/05/05 12:48
TKW的想法超级神奇,具体分析见代码
#include <cstdlib>#include <stdio.h>#include <string.h>using namespace std;int run[15005];int main() {    int n;    while(scanf("%d",&n)!=EOF){        memset(run,0,sizeof(run));        int a,b,c;        while(scanf("%d%d%d",&a,&b,&c)){            if(a==-1||b==-1||c==-1) break;//仔细读题,题中说的是当start==-1是就可以停止了,所以不要写成了//if(a==-1&&b==-1&&c==-1) break;这样会TLE,太坑爹了= =!             run[a]+=c;//这儿就是这道题的精髓,就两行。。。。。太NB了             run[a+b]=-c;        }        int maxl,maxr,sum=0,posl,posr;        for(int i=0;i<=n;i++){            sum+=run[i];            run[i]=sum;            if(sum>maxl){                maxl=sum;                posl=i;            }        }        for(int i=0;i<=n;i++){            sum+=run[i];            run[i]=sum;            if(sum>maxl){                maxl=sum;                posl=i;            }        }        printf("%d %d\n",posl,posr);    }    return 0;}

原创粉丝点击