{"id":379,"date":"2018-11-08T23:08:49","date_gmt":"2018-11-08T15:08:49","guid":{"rendered":"http:\/\/SmokeyDays.top\/wordpress\/?p=379"},"modified":"2018-11-08T23:08:49","modified_gmt":"2018-11-08T15:08:49","slug":"cf799c-fountains","status":"publish","type":"post","link":"http:\/\/SmokeyDays.top\/wordpress\/2018\/11\/08\/cf799c-fountains\/","title":{"rendered":"CF799C Fountains"},"content":{"rendered":"<p>CF799C Fountains<br \/>\n\u53ef\u4ee5\u4e0a\u6570\u636e\u7ed3\u6784\u7ef4\u62a4\uff0c\u5f53\u7136\u4e5f\u53ef\u4ee5\u5927\u529b\u5206\u7c7b\u8ba8\u8bba\u3002 <\/p>\n<pre class=\"pure-highlightjs\"><code class=\"cpp\">#include&lt;iostream&gt;\r\n#include&lt;cstdio&gt;\r\n#include&lt;algorithm&gt;\r\nusing namespace std;\r\nint n,A,B,Ct=0,Dt=0;\r\nstruct data{\r\n    int b;\r\n    int p;\r\n    bool operator &lt;(const data &amp;_B)const{\r\n        return p&lt;_B.p;\r\n    }\r\n}C[100005],D[100005];\r\ninline int slv1(){\r\n    if((!Ct)||(!Dt)){\r\n        return 0;\r\n    }\r\n    if(C[1].p&gt;A||D[1].p&gt;B){\r\n        return 0;\r\n    }\r\n    int rtC=0,rtD=0,pC=1,pD=1;\r\n    while(pC&lt;=Ct&amp;&amp;C[pC].p&lt;=A){\r\n        rtC=max(rtC,C[pC].b);\r\n        ++pC;\r\n    }\r\n    while(pD&lt;=Dt&amp;&amp;D[pD].p&lt;=B){\r\n        rtD=max(rtD,D[pD].b);\r\n        ++pD;\r\n    }\r\n    return rtC+rtD;\r\n}\r\n\/\/AC[i]\u8868\u793a\uff0c\u5269\u4f59\u4e3ai\u65f6\u7684\u6700\u5927\u6536\u76ca\uff0crAC[i]\u8868\u793a\uff0c\u5269\u4f59\u5927\u4e8e\u7b49\u4e8ei\u65f6\u7684\u6700\u5927\u6536\u76ca\u3002 sAC\u4e0esrAC\u5206\u522b\u8868\u793a\u5b83\u4eec\u7684\u4f4d\u7f6e\u3002 \r\nint AC[100005],rAC[100005],sAC[100005],srAC[100005],sbAC[100005];\r\ninline int slv2(){\r\n    if(Ct&lt;2){\r\n        return 0;\r\n    }\r\n    if(C[1].p+C[2].p&gt;A){\r\n        return 0;\r\n    }\r\n    int rtC=0;\r\n    for(int i=1;i&lt;=Ct&amp;&amp;C[i].p&lt;=A;++i){\r\n        if(AC[A-C[i].p]&lt;C[i].b){\r\n            AC[A-C[i].p]=C[i].b,sAC[A-C[i].p]=i;\r\n        }\r\n    }\r\n    for(int i=A;i&gt;=1;--i){\r\n        if(rAC[i+1]&gt;AC[i]){\r\n            rAC[i]=rAC[i+1];\r\n            srAC[i]=srAC[i+1]; \r\n        }else{\r\n            rAC[i]=AC[i];\r\n            srAC[i]=sAC[i]; \r\n        }\r\n    }\r\n    for(int i=1;i&lt;=Ct;++i){\r\n        if(i!=srAC[C[i].p]&amp;&amp;rAC[C[i].p]){\r\n            rtC=max(rtC,C[i].b+rAC[C[i].p]);\r\n        }else{\r\n        \t\/\/rtC=max(rtC,C[i].b+C[i-1].b);\r\n\t\t}\r\n    }\r\n    return rtC;\r\n}\r\n\r\nint BD[100005],rBD[100005],sBD[100005],srBD[100005];\r\ninline int slv3(){\r\n    if(Dt&lt;2){\r\n        return 0;\r\n    }\r\n    if(D[1].p+D[2].p&gt;B){\r\n        return 0;\r\n    }\r\n    int rtD=0;\r\n    for(int i=1;i&lt;=Dt&amp;&amp;D[i].p&lt;=B;++i){\r\n        if(BD[B-D[i].p]&lt;D[i].b){\r\n            BD[B-D[i].p]=D[i].b,sBD[B-D[i].p]=i;\r\n        }\r\n    }\r\n    for(int i=B;i&gt;=1;--i){\r\n        if(rBD[i+1]&gt;BD[i]){\r\n            rBD[i]=rBD[i+1];\r\n            srBD[i]=srBD[i+1]; \r\n        }else{\r\n            rBD[i]=BD[i];\r\n            srBD[i]=sBD[i]; \r\n        }\r\n    }\r\n    for(int i=1;i&lt;=Dt;++i){\r\n        if(i!=srBD[D[i].p]&amp;&amp;rBD[D[i].p]){\r\n            rtD=max(rtD,D[i].b+rBD[D[i].p]);\r\n        }\r\n    }\r\n    return rtD;\r\n}\r\nvoid init(){\r\n    scanf(\"%d%d%d\",&amp;n,&amp;A,&amp;B);\r\n    char ch[5];\r\n    int x,y;\r\n    for(int i=1;i&lt;=n;++i){\r\n        scanf(\"%d%d\",&amp;x,&amp;y);\r\n        cin&gt;&gt;ch;\r\n        if(ch[0]=='C'){\r\n            C[++Ct]=(data){x,y};\r\n        }else{\r\n            D[++Dt]=(data){x,y};\r\n        }\r\n    }\r\n    sort(C+1,C+1+Ct);\r\n    sort(D+1,D+1+Dt);\r\n    int ans=0;\r\n    ans=max(ans,slv1());\r\n    ans=max(ans,slv2());\r\n    ans=max(ans,slv3());\r\n    printf(\"%d\\n\",ans);\r\n}\r\nint main(){\r\n    init();\r\n    return 0;\r\n}<\/code><\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>CF799C Fountains \u53ef\u4ee5\u4e0a\u6570\u636e\u7ed3\u6784\u7ef4\u62a4\uff0c\u5f53\u7136\u4e5f\u53ef\u4ee5\u5927\u529b\u5206\u7c7b\u8ba8\u8bba\u3002 #include&lt;ios &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/SmokeyDays.top\/wordpress\/2018\/11\/08\/cf799c-fountains\/\" class=\"more-link\">\u7ee7\u7eed\u9605\u8bfb<span class=\"screen-reader-text\">\u201cCF799C Fountains\u201d<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[20,6,5],"tags":[],"_links":{"self":[{"href":"http:\/\/SmokeyDays.top\/wordpress\/wp-json\/wp\/v2\/posts\/379"}],"collection":[{"href":"http:\/\/SmokeyDays.top\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/SmokeyDays.top\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/SmokeyDays.top\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/SmokeyDays.top\/wordpress\/wp-json\/wp\/v2\/comments?post=379"}],"version-history":[{"count":1,"href":"http:\/\/SmokeyDays.top\/wordpress\/wp-json\/wp\/v2\/posts\/379\/revisions"}],"predecessor-version":[{"id":380,"href":"http:\/\/SmokeyDays.top\/wordpress\/wp-json\/wp\/v2\/posts\/379\/revisions\/380"}],"wp:attachment":[{"href":"http:\/\/SmokeyDays.top\/wordpress\/wp-json\/wp\/v2\/media?parent=379"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/SmokeyDays.top\/wordpress\/wp-json\/wp\/v2\/categories?post=379"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/SmokeyDays.top\/wordpress\/wp-json\/wp\/v2\/tags?post=379"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}